Javaで文字列から文字を取り除く

こんにちは、さるまりんです。

Javaで書いているプログラムで文字列から空白文字(半角スペース)を取り除く必要があったのでその方法をメモしておきます。

String.replace

JavaのStringクラスにはreplace(from, to)というメソッドがあります。これは対象文字列中のfromtoに置換します。これを利用してfromに空白をtoに空文字列を指定することで文字列中からfromに指定した文字を取り除くことができます。

String str = "hello world I am here.";
String removed = str.replace(" ", "");
System.out.println(removed); // 「hellowordIamhere.」と出力されます。

ちなみにStringクラスにはreplaceAll()というメソッドもあるのですが、これはfromの引数を正規表現として解釈して置換処理を行うので注意です。

StringUtils.remove

Apache Commonsには様々な便利なJavaのコンポーネントがあります。この中のCommons Langjava.langパッケージにあったらいいなと思われる機能が色々実装されています。その中にStringUtilsというクラスがありここにStringクラスを扱う時に助けてくれる便利なメソッドがあります。今回使ったメソッドはremove()です。remove(str, remove)strからremoveを取り除きます。

上の例と同じことをremove()で行うとこうなります。

String str = "hello world I am here.";
String removed = StringUtils.remove(str, " ");
System.out.println(removed); // 「hellowordIamhere.」と出力されます。

String.replace()の場合、対象の変数がnullだったら、NullPointerExceptionが発生しますが、StringUtils.remove()では対象がnullならばnullが返却されます。チェックしてくれるのありがたいですね。

中で何をしているかを知ると自分で実装するプログラムにいきてくると思いますので、できるだけ誰かが書いたソースコードを読んで勉強したいと思います。

読んでくださってありがとうございます。

それではまた!