◆PROCESSING 逆引きリファレンス
カテゴリー:文字関連処理
文字を取り出すには
【解説】
文字列を任意の文字で分割する方法については「文字の連結と分割」で解説しました。例えば “あさ,ひる,よる” という文字列を半角カンマ “,” で分割して、”あさ” “ひる” “よる” の3つに分割する方法です。
今回は、文字列の左端(または右端)から、任意の文字数だけ取り出す方法を紹介します。
PROCESSINGはJavaをベースにした言語です。よって Stringクラスが持っている便利なメソッドが利用できます。文字列を取り出すには、Stringクラスが持っている substring() メソッドを利用します。
【構文】
String sub = src.substring( int beginIndex );
String sub = src.substring( int beginIndex, int endIndex );
src は 文字列を取得する元となる String型の文字列とします。
JavaのStringクラスについては、公式ドキュメント を参照してください。
【パラメータ】
int beginIndex:0から始まる取り出し開始位置
int endIndex:文字列の長さ までの、取り出し終了位置
【戻り値】
String sub:取り出された新しい文字列
【注意】
取り出し開始位置の先頭(つまり1文字目)は 0 になります。また取り出し終了位置のMAXは、元の文字列の長さまでです。
endIndex を省略した場合、取り出し位置以降にある全ての文字列を取得します。
- beginIndex が負の数
- beginIndex が 元の文字数-1 より大きい
- endIndex < beginIndex
の何れかの条件を満たすと、実行時に「String index out of range」例外エラーが発生します。
また、元の文字列が null の場合は、 実行時に「NullPointerException」例外エラーが発生します。
ただし endIndex を省略した場合のみ、beginIndex は 0 から文字列長(上記例なら5)まで指定可能でした。この場合、beginIndex に5を指定すると、空文字が戻されます。
1 2 3 |
String src="あさが来た"; String sub = src.substring(5); println( sub + "(" + sub.length() + ")" ); //<--(0)と表示 |
空文字(””)に対する substring() は、endIndex を省略して、かつbeginIndex に0を指定した場合のみ正常に動作します。この場合は空文字が戻されます。
1 2 3 |
String src=""; //<--空文字 String sub = src.substring(0); println( sub + "(" + sub.length() + ")" ); //<--(0)と表示 |
【関連記事】
サンプルプログラム
開始位置のみ指定して取り出す例:
1 2 3 |
String src="あさが来た"; String sub = src.substring(2); println( sub + "(" + sub.length() + ")" ); |
開始位置に2を指定しているので、”あさ”の部分が無視されて、2以降にある全ての文字=”が来た” が取り出されます。
開始位置と終了位置を指定して取り出す例:
1 2 3 |
String src="あさが来た"; String sub = src.substring(2,4); println( sub + "(" + sub.length() + ")" ); |
開始位置と終了位置を両方指定しています。開始位置は2なので ”が” からです。終了位置は4なので “来” までになります。
文字列の右端から取り出す例:
1 2 3 |
String src="あさが来た"; String sub = src.substring(src.length() - 2, src.length()); println( sub + "(" + sub.length() + ")" ); |
文字列の右端から2文字取り出す例です。文字列の長さ(字数)は、Stringオブジェクトのlength()メソッドで取得できます。
よって、右端から2文字は src.length() – 2 から src.length() まで取り出せば良い事になります。
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。