文字列の前後の空白を除去したいときは、Stringクラスのメソッド trim が使えます。
trim は、現在の文字列の先頭と最後の空白を削除したコピー、または先頭と最後に空白が無ければそのまま返します。
( 関連する自作メソッド : 文字列に含まれる空白や改行を除去する )
【 trim メソッドの形式 】 String trim()
class UseTrim { public static void main( String[] args ) { String s[] = { " 先頭と中間と 最後に半角スペース " , " 先頭と中間と 最後に全角スペース " , "\t先頭と中間と\t最後にタブ\t" , "\n先頭と中間と\n最後に改行\n" , "空白の無い文字列" , " " //半角空白のみ , " " //全角空白のみ , "" //空の文字列 }; for( int i = 0; i < s.length; i++ ) { String t = s[i].trim(); System.out.println( i + ":##" + t + "##" ); } } }(実行結果)
0:##先頭と中間と 最後に半角スペース## 1:## 先頭と中間と 最後に全角スペース ## 2:##先頭と中間と 最後にタブ## 3:##先頭と中間と 最後に改行## 4:##空白の無い文字列## 5:#### 6:## ## 7:#### |
・・・ 前後の半角スペースは除去された ・・・ 全角スペースは前後のものも残っている ・・・ 前後のタブは除去された ・・・ 前後の改行は除去された ・・・ これはそのまま ・・・ 半角空白のみだったのが、空文字列となった ・・・ 全角空白はそのまま ・・・ 元々空の文字列で、そのまま |
[ '\u0020'(半角スペース)以下の文字しかないとき ]
空の文字列を生成して返す
[ それ以外があるとき ]
'\u0020' より大きい最初の文字 〜 '\u0020' より大きい最後の文字までの部分文字列を生成して返す
(今回のクイズです)
次のような文字列を trim した結果は、どうなるでしょうか?
" \t\n\t\n " //半角空白,タブ,改行のみでできた文字列
(答えは、次回の Java の Tips で ・・・)