こんにちは!エンジニアの中沢です。
JavaでString型の文字列を扱っていてこんな風に思ったことはありませんか?
改行やタブなどの制御文字を削除したい
trimメソッドの使い方を知りたい
今回はそんな悩みを解決するtrimメソッドの使い方についてです。
この記事では、
- trimで文字列から空白を削除する方法
- 改行やタブなどの制御文字を削除する方法
- 全角スペースなど削除できない場合について
などの基本的な内容から、応用的な使い方に関しても解説していきます。
今回は空白や改行などの制御文字を削除する方法について、わかりやすく解説します!
なお、Javaの記事については、こちらにまとめています。
trimで文字列から空白を削除する方法
初めに文字列から空白を削除する方法を解説します。
文字列から空白を削除するには、java.lang.Stringクラスのtrimメソッドを使います。trimメソッドは文字列の先頭と末尾の連続した空白と制御文字をすべて削除します。
文字列から空白を削除する方法を覚えるために次のプログラムを見てみましょう。
public class Main { public static void main(String[] args) { String str = " samu rai "; System.out.println("削除前 = " + str + ""); System.out.println("削除後 = " + str.trim() + ""); } }
実行結果:
削除前 = " samu rai " 削除後 = "samu rai"
文字列の前後の半角スペースが削除されたことが確認できました!
改行やタブなどの制御文字を削除する方法
次は文字列から改行やタブなどの制御文字を削除する方法を解説します。
改行コードのような制御文字を削除する場合も、trimメソッドで半角スペースと同様に削除できます。文字の間の制御文字は、空白と同様に削除されないことに気をつけてください。
文字列に改行とタブのコードを入れた次のプログラムで確認してみましょう。
public class Main { public static void main(String[] args) { String str2 = " samurai \n\t"; System.out.println("削除前 = " + str2 + ""); System.out.println("削除後 = " + str2.trim() + ""); } }
実行結果:
削除前 = " samurai " 削除後 = "samurai"
trimメソッドを使って、文字列の前後の空白と改行とタブのすべてが削除できることが確認できました!
全角スペースなど削除できない場合について
trimメソッドでは、文字の間の空白は削除されないことに気をつけてください。
また、全角スペースも削除されないので注意してください。
次のプログラムで確認してみましょう。
public class Main { public static void main(String[] args) { String str1 = " samu rai "; //前後に半角スペース System.out.println("削除前 = " + str1 + ""); System.out.println("削除後 = " + str1.trim() + ""); String str2 = " samu rai "; //前後に全角スペース System.out.println("削除前 = " + str2 + ""); System.out.println("削除後 = " + str2.trim() + ""); } }
実行結果:
削除前 = " samu rai " 削除後 = "samu rai" 削除前 = " samu rai " 削除後 = " samu rai "
文字の間の空白と全角スペースが削除されないことが確認できました!
replaceAllで削除する方法
では、文字の間の空白と全角スペースを削除したい場合はどうしたらよいのでしょうか?
そんな場合は、replaceAllメソッドを使用します。
replaceAllメソッドもtrimメソッドと同じように、java.lang.Stringクラスのメソッドです。replaceAllメソッドの第1引数には置換前の文字列を、第2引数には置換後の文字列を指定します。
文字の間の空白と全角スペースを削除する場合は、第1引数に半角スペースや全角スペースを指定し、第2引数に空文字(“”)を指定します。
サンプルコードで確認しましょう。
public class Main { public static void main(String[] args) { String str = " samu rai "; //前後に全角スペース System.out.println("削除前 = " + str + ""); str = str.replaceAll(" ", ""); //全角スペースを空文字に置換 str = str.replaceAll(" ", ""); //文字の間の半角スペースを空文字に変換 System.out.println("削除後 = " + str + ""); } }
実行結果:
削除前 = " samu rai " 削除後 = "samurai"
文字の間の空白と全角スペースが削除できることが確認できました!
なお、replaceAllメソッドのように文字列の置換について詳しく知りたい方は、こちらを参考にしてくださいね。
String(文字列クラス)総まとめ
String(文字列クラス)についてさらに詳しく知りたいときはこちらの記事を確認してください!
まとめ
いかがでしたか?
今回はString型の文字列から、空白や改行などの制御文字を削除する方法について解説しました。
trimメソッドは文字の間の空白や、全角スペースは削除しないので注意してくださいね。
もしtrimメソッドの使い方を忘れてしまったらこの記事を確認してください!