【Java】splitメソッドで文字を分割する方法をわかりやすく解説!
  • facebookページ
  • twitterページ
  • 2021.02.25

    【Java】splitメソッドで文字を分割する方法をわかりやすく解説!

    本記事では、Javaのsplitメソッドの使い方について解説します。

    splitメソッドは文字を分割する

    splitは、対象の文字列を指定した区切り文字で分割し、分割した文字を配列の要素として格納するメソッドです。

    引数に単純な文字(列)を指定した場合は、文字に一致した位置で文字列を分割します。

    splitメソッドの使い方

    splitメソッドの使い方は次の通りです。

    第一引数に指定する区切り文字は、正規表現で指定します。

    正規表現とは、「ある特定の文字列パターンを1つの形式で表現する方法」のことを指します。

    詳しくは以下の記事で解説していますので「正規表現って何だろう?」という方はチェックしてみてください。

    【関連記事】

    ▶︎苦手意識を克服しよう!Java正規表現の基本を初心者向けに解説!

    ポテパンダの一言メモ

    splitメソッドでは、よく「,(カンマ)」や特定の文字列を指定して使うことが多いです。

    また、第二引数に分割の回数を指定できます。回数指定が必要なければ省略も可能です。

    第二引数を省略した場合、配列の要素数は制限されず、配列の終わりに空の文字列がある場合は破棄されます。

    第二引数に指定した分割回数が0よりも大きい場合、配列に格納される要素数は指定した引数の値以下になります。

    0よりも小さい(負の数)場合、列の要素数は制限されず、配列の終わりに空の文字列がある場合は破棄されません。

    また、第二引数に0を指定した場合は、省略した場合の動きと同様になります。

    splitメソッドの区切り文字を指定する

    では実際に、splitメソッドの区切り文字を指定して文字列を分割してみましょう。

    1. ,(カンマ)で分割
    2. .(ドット)で分割
    3. 改行コードで分割
    4. タブで分割で分割
    5. 空白で分割で分割

    ,(カンマ)で分割

    区切り文字に「,」を指定した場合の記述例・実行例です。

    .(ドット)で分割

    区切り文字に「.」を指定した場合の記述例・実行例です。

    「.」で分割を行う場合、引数に「.」を指定してもうまく分割できません。

    「.」は正規表現で「任意の一文字」を意味するためです。つまり、「.」を文字の「.」として扱っていないんですね。

    そこで、少し工夫を凝らして Patternクラスの quoteメソッド を使用します。

    quoteメソッドは、指定されたStringのリテラル・パターンStringを返すメソッドです。

    これによって「.」を文字として認識し、期待した動作で文字を区切れます。

    改行コードで分割

    区切り文字に改行コード「\n」を指定した場合の記述例・実行例です。

    タブで分割で分割

    区切り文字にタブ「\t」を指定した場合の記述例・実行例です。

    空白で分割で分割

    区切り文字に空白を指定した場合の記述例・実行例です。

    splitメソッドで複数の区切り文字を指定する方法

    前章で、指定した区切り文字で文字列を分割する方法を紹介しました。

    ここでは、少し応用して複数の区切り文字を指定する方法を見ていきましょう。

    区切り文字を複数するには、第一引数の区切り文字を「[](ブラケット)」で囲います。

    記述例は次の通りです。

    ここでは、addressを意味する「=」と、それぞれの単語を区切っている「,」の2つを区切り文字に指定しました。

    実行結果は次の通りです。

    splitメソッドで空文字を指定して1文字ずつ分割する方法

    splitメソッドの引数に空文字を指定すると、文字列を1文字ずつ分割可能です。

    ポテパンダの一言メモ

    空白「” “」ではなく、空文字「””」である点はしっかり覚えておきましょう。

    記述例・実行例は次の通りです。

    このように、1文字ずつ分割できているのがわかります。

    splitメソッドで末尾の空文字は除外しない方法

    splitメソッドの第二引数を指定しない場合、末尾の空文字は除外されます。

    末尾の空文字も除外せずに文字列を分割したい場合は、第二引数にマイナスの値を設定しましょう。

    実際に、第二引数に0を指定した場合(省略した場合)と、-1を指定した場合を比較してみます。

    ポテパンダの一言メモ

    このように、マイナスの値を指定すると空文字も含めた区切りが実現でき、配列のサイズも変わってきます。

    状況に合わせて区切りを使いこなせるようにしてください。

    splitで分割した文字をArrayListで取得する方法

    splitメソッドで文字列を分割し、結果をArrayListで取得するは、asListメソッドを使って変換しましょう。

    asListメソッドは、配列をリスト(コレクション)に変換するためのメソッドです。

    サンプルコードで動きを確認しましょう。

    このように、分割した文字をArrayListに格納し、取得までできました。

    なお、ArrayListについて詳しく知りたい場合は、以下の記事を参考にしてみてください!

    【関連記事】

    ▶︎【Java入門】ArrayListの使い方!配列との違いも解説

    splitで複数の空白を含む文字列を分割する方法

    区切りたい文字列の中に空白が複数ある場合、先述した方法で分割すると次のようになってしまいます。

    複数の空白を一つの区切り文字として指定する場合、正規表現で「” +”」と指定しましょう。

    ポテパンダの一言メモ

    「+」を追加することで、直前の文字が1回以上繰り返す場合にマッチします。

    これで期待した通りの動きになりました。

    splitで文字列がnullの場合に気をつけること

    splitメソッドは、対象の文字列がnullだった場合、例外処理 NullPointerException が発生します。

    そのため、nullが含まれる可能性がある場合、try-catch文で例外処理を実装するか、nullチェックをすると良いでしょう。

    次のように記述できます。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE