【Java】文字列の先頭と末尾のスペースを除去する

【Java】文字列の先頭と末尾のスペースを除去する

オンライン講座で、AWSの基本資格「AWS 認定ソリューションアーキテクトアソシエイト試験」に合格しよう!

お久しぶりです。ながれです。

今回は、Javaで文字列の先頭と末尾のスペースを除去する方法について。

Androidだと、EditTextで入力された文字列のスペースを削除したいシーンって結構あると思います。

私もそんなシーンに出くわしたのですが、一癖あったので今回取り上げてみました。

是非最後までご覧ください!

String.trim()では半角スペースしか除去できない

文字列の先頭・末尾の削除と聞いて一番最初に思いつくのは

String.trim()

だと思います。

確かに、スペースの除去はできます。

しかし、注意点として半角スペースの除去しか対応していません。

全角スペースは除去してくれないのです。

では、全角スペースも除去したい場合はどうしたら良いか?

Java11であれば、StringUtils.strip(String str, String stripChars)

Java11以降の場合は、String.strip(String str, String stripChars)が使えます。

第一引数str :対象の文字列

第二引数stripChars:除去したい文字

上記のように記述してやれば、全角スペースの除去も可能です。

しかし、Java11より前を使っている方も多いかと思われます

私が少してこづったのは、ここです。

trim()じゃ半角スペースしか除去してくれないし、stripは使えないし…

そんな時に、次の方法を見つけました。

【Javaプログラマー早期育成シリーズ】例外処理

String.replaceFirstで正規表現にて除去する

String.replaceFirstは、文字列に対して指定したパターンに一致する最初の部分を他の文字で置き換えるメソッドです。

これを使用して、以下のように記載することで

文字列の先頭と末尾にある半角・全角スペースを除去できます。

replaceFirst(“^[\\h]+”, “”)は先頭の半角・全角スペースを””に置換しています。

replaceFirst(“[\\h]+$”, “”)は末尾の半角・全角スペースを””に置換しています

上記は、文字列の先頭や末尾に半角と全角スペースが交互に入り混じっていたとしても、すべて除去してくれます。

もちろん、文字列の文字と文字の間に入っているスペースは除去しないので、もし間のスペースも除去したい場合はString.replaceAllを使用してください。

おわりに

文字列の先頭と末尾のスペースを除去する方法を3つほど紹介しました。

結論としては、String.replaceFirst使っとけば間違いない、ということです。

このブログでは、他にもAndroid関連の記事やエンジニアとして覚えておいた方が良い用語など、様々なコンテンツがありますので是非色々と見てってくださいね。

【ゼロからのAndroid☓Kotlin】一番やさしいAndroidアプリ開発入門<初級編・みんプロ式>

Java(Android)カテゴリの最新記事