文字列の前後に空白が入り、それを削除したいということはよくある。
特にユーザが入力する場所やExcel保存していたもののシステム化などの際、よく発生するだろう。そういった際に使えるものの一つとしてStringクラスのtrimがある。
このページではtrimについてお伝えした。参考にしていただければと思う。
目次
文字列の前後の空白を取り除く(trim)
文字列の前後の空白を取り除くのにはtrimメソッドが使える。文字列の途中の空白は取らないので注意が必要だ。
文字列.trim( )
| 
 戻り値の型  | 
 String  | 
| 
 内容  | 
 この文字列のコピーを返します。先頭と最後の空白を取り除く。  | 
trim ()は、文字列の先頭と最後に空白があった場合には取り除いて文字列を返すメソッドだ。
再度お伝えするが、先頭と最後のみ取り除くので、途中にある空白は取り除かない。
また、ここで言う空白は半角の空白である。全角の空白は対象とならないため注意してほしい。全角の空白の削除方法も後でお伝えする。
サンプルコード
それではサンプルコードを見てみよう。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  | 
						public class StringSample9 {     public static void main(String[] args) {         String message ;          message = "   おはようございます。気持ちのいい朝です。  ";//[1]         String result = message.trim();//[2]         System.out.println("もとの文字列:" + message + "です。" ); //[3]         System.out.println("空白を取り除いた文字列:" +result+ "です。" ); //[4]         //空白が全角の場合         System.out.println("----------------------" );          String message1 ;          message1 = "   おはようございます。気持ちのいい朝です。  ";//[5]         String result1 = message1.trim();//[6]         System.out.println("もとの文字列:" + message1 + "です。" ); //[7]         System.out.println("空白を取り除いた文字列:" +result1+ "です。" ); //[8]     } }  | 
					
実行結果
上が半角スペースの時、下が全角スペースの時だ。
| 
					 1 2 3 4 5 6 7 8 9  | 
						もとの文字列:   おはようございます。気持ちのいい朝です。  です。 空白を取り除いた文字列:おはようございます。気持ちのいい朝です。です。 ---------------------- もとの文字列:   おはようございます。気持ちのいい朝です。  です。 空白を取り除いた文字列:   おはようございます。気持ちのいい朝です。  です。  | 
					
このように全角スペースは取り除かれない。全角スペースを取り除きたいときの方法は下に用意した。
サンプルコードの説明
一応、サンプルコードの説明もしておこう。
- [1] String型の変数messageの初期化。
 - [2] 変数messageからtrim()メソッドで文字列の前後の空白を取り除き、String型変数resultへ代入。
 - [3] 変数messageを出力。
 - [4] 変数resultを出力。
 - [5] 変数message1の初期化
 - [6] 変数message1からtrim()メソッドで文字列の前後の空白を取り除き、String型変数result1へ代入。
 - [7] 変数message1を出力。
 - [8] 変数result1を出力。
 
空白を取り除いて比較するサンプルコード
trimは、入力された文字列とある文字列を比較したい時などにも使用する。
入力時に空白文字などが入っていると、一見同じ文字列でも比較した場合「一致しない」となってしまうためだ。
| 
					 1 2 3 4 5 6 7 8 9  | 
						public class StringSample91 {     public static void main(String[] args) {         String inputStr ; //[1]         inputStr = "福岡県 ";//[2]         String compareStr = "福岡県";//[3]         System.out.println("trimを使用しない場合の結果:" + compareStr.equals(inputStr) + "です。" ); //[4]         System.out.println("trimを使用した場合の結果:" + compareStr.equals(inputStr.trim()) + "です。" ); //[5]     } }  | 
					
実行結果
| 
					 1 2  | 
						trimを使用しない場合の結果:falseです。 trimを使用した場合の結果:trueです。  | 
					
サンプルコードの説明
- [1] String型の変数inputStrの宣言。これを入力された文字列と仮に想定。
 - [2] 変数inputStrへ末尾に半角空白をつけた「福岡県 」を代入。
 - [3] 比較に使用する変数compareStrを宣言し、空白なしの「福岡県」で初期化。
 - [4] trimを使用せずにinputStrとcompareStrを比較し結果を出力。
 - [5] trimを使用してinputStrとcompareStrを比較し結果を出力。
 
全角スペースも除去したいとき(strip)
全角スペースを除去したいときは、Java11より追加されたstripを利用しよう。
文字列.strip( )
| 
 戻り値の型  | 
 String  | 
| 
 内容  | 
 この文字列のコピーを返します。先頭と最後の空白(全角スペース含む)を取り除く。  | 
strip ()は、文字列の先頭と最後に全角スペースを含んだ空白があった場合には取り除いた文字列を返すメソッドだ。
stripを利用したサンプルコード
| 
					 1 2 3 4 5 6 7 8  | 
						public class Sample { 	public static void main(String[] args) { 		// こんにちはとこんばんはの前後それぞれに、全角スペースと半角スペース 		String str = "  こんにちは。  こんばんは  "; 		System.out.println(str.trim()); 		System.out.println(str.strip()); 	} }  | 
					
実行結果
| 
					 1 2  | 
						  こんにちは。  こんばんは  こんにちは。  こんばんは  | 
					
サンプルコードの説明
trimの場合は行末の半角スペースのみが除去されているのに対して、stripは全角スペース・半角スペース共に除去されているのが確認できる。
まとめ
このページではStringクラスのtrimメソッドを使って、文字列の前後から空白を除去する方法をお伝えした。
全角スペースには対応していないので、必要に応じてstripメソッドと使い分ける必要があるだろう。
参考にしていただければと思う。

                    


最後のサンプルがタグ漏れてます。
タグ飛ばして読めば良いのですが、少々気になったのでコメントしました。
↓
public
いつもご愛読ありがとうございます。
こちらの記事ですが、全角スペースを含む空白の除去としてJava11から利用可能となったstripを追加して対応させていただきました。
ご指摘ありがとうございました。