文字の連結と分割

◆PROCESSING 逆引きリファレンス

 カテゴリー:文字関連処理

文字の連結と分割

【解説】
PROCESSINGで文字列を扱う際にはString オブジェクトを使うのが便利です。Stringオブジェクトは文字と文字を連結したり、分割する事が簡単に行えます。

String文字列同士の連結には + 記号を使います。
String文字列を任意の区切り文字で分割するには、Stringオブジェクトが持つ split メソッドを利用します。

【構文】
連結: String + String
分割: String.split( String regex, int limit );

【パラメータ】
String  regex  : 分割文字
int         limit   : 分割回数

【戻り値】
連結: String
分割: String[] 配列

【注意】
limit パラメータは、分割回数です。与えられた文字列をregexでlimit -1 回分割した、個々の文字列を含むString配列が戻されます。

●limit がゼロより大きい場合
分割が limit – 1回以下だけ繰り返されます。戻される配列の長さは limit 以下になります。配列の最後の要素には、最後にマッチした区切り文字以降の入力文字がすべて含まれます。

●limit が負の値の場合
分割回数と配列の長さは制限されません。与えられた文字列を全てregexで分割します。

●limitがゼロの場合
分割回数と配列の長さは制限されません。負の値との違いは、分割された後で、最後の項目が空白の場合には、それを配列に格納しない事です。なお分割途中にある空白文字列は、戻り値の配列に格納されます。

【関連記事】
第4章:ハイスコアを表示する(その2)


●文字列を結合する例:

フルーツの名前を半角カンマ(“,”)区切りで格納した文字列1と2(str1とstr2)を、間に半角カンマを挿入しながら連結しています。

バナナ,リンゴ,スイカ”   +   “,”   +   “なし,もも+ぶどう”  ですね。

<出力サンプル>
結合結果

 

●文字列を分割する例(limitが正の数)

バナナ,リンゴ,スイカ,,なし,もも+ぶどう,,,“ という文字列を 半角カンマを区切り文字として分割しています。
分割回数に3を指定していますので、 3 –  1 = 2回まで分割した結果と、残りの文字列がString配列に戻されます。

以下のようになります。
String[0] = “バナナ
String[1] = “リンゴ
String[2] = “スイカ,,なし,もも+ぶどう,,,

<出力サンプル>
分割結果1

 

●文字列を分割する例(limitが負の数)

先ほどの例と違うのは、split()に与える分割回数が負の値(-1)になっている所です。

以下のようになります。
String[0] = “バナナ
String[1] = “リンゴ
String[2] = “スイカ
String[3] = “”
String[4] = “なし
String[5] = “もも+ぶどう
String[6] = “”
String[7] = “”
String[8] = “”

「スイカ」と「なし」の間には空文字がありますが、空文字のまま戻されます。
また「もも+ぶどう」の後ろのある空文字も、その数分だけ戻されます。

<出力サンプル>
分割結果2

 

●文字列を分割する例(limitがゼロ)

split()に与える分割回数を0にしています。
負の値との違いは、「もも+ぶどう」のあとにある空文字が戻されない事です。

以下のようになります。
String[0] = “バナナ
String[1] = “リンゴ
String[2] = “スイカ
String[3] = “”
String[4] = “なし
String[5] = “もも+ぶどう

「スイカ」と「なし」の間には空文字がありますが、空文字のまま戻されます。

<出力サンプル>
分割結果3

 

●文字列を分割する例(分割文字が2文字以上)

これまでの例は分割文字(regex)が1文字の例でした。本例は分割文字が2文字(連続する半角カンマ)になっています。どうなるか、想像できますか?。

以下のようになります。
String[0] = “バナナ,リンゴ,スイカ
String[1] = “なし,もも+ぶどう
String[2] = “,

わかりにくいので図もつけました。赤文字で書いた連続する半角カンマが区切り文字になる事が、おわかり頂けると思います。

<出力サンプル>
分割結果5
分割結果4

 


PROCESSING逆引きリファレンス一覧 へ戻る

本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)