StringBuilderクラス
lastIndexOfメソッド
引数の文字列を後ろから検索してが最初に見つかった位置を返します。
lastIndexOf
目次
1. lastIndexOfメソッド
引数が String一つだけの場合は、自身の文字列の末尾から検索して
指定された文字列が最初に出現する位置のインデックスを返します。
public int lastIndexOf(String str)
その他
引数に指定した文字列が含まれていない場合は「-1」を返します。
自身の文字列を、指定されたインデックス(int fromIndex)から後ろ向きに検索して、
指定された文字列(String str)が最初に出現する位置のインデックスを返します。
2つ目以降の出現箇所を探す場合に利用できます。
サンプルコードをご参考にしてください。
public int lastIndexOf(String str, int fromIndex)
その他
指定されたインデックスよりも前に
引数に指定した文字列が含まれていない場合は「-1」を返します。
2.サンプルコード
//Sample08_01.java
class Sample08_01{
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("キレンジャー黄瀬涼太\n");
sb.append("ミドレンジャー緑間真太郎\n");
sb.append("アオレンジャー青峰大輝\n");
sb.append("ムラサキレンジャー紫原敦\n");
sb.append("アカレンジャー赤司征十郎\n");
System.out.println(sb.toString());
int sbLength = sb.length();
System.out.println("sbLength: " + sbLength);
String searchWord = "レンジャー";
int length = searchWord.length();
int fromIndex = sbLength-1;
while((fromIndex = sb.lastIndexOf(searchWord, fromIndex)) != -1){
System.out.print("index: " + fromIndex);
String hitWord = sb.substring(fromIndex, fromIndex + length +1);
System.out.println("\t hitWord: " + hitWord);
fromIndex--; //重複ヒットを避けるため、一文字移動
if(fromIndex<0)break;
}
}
}
コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample08_01.java
ws>java Sample08_01
キレンジャー黄瀬涼太
ミドレンジャー緑間真太郎
アオレンジャー青峰大輝
ムラサキレンジャー紫原敦
アカレンジャー赤司征十郎
sbLength: 62
index: 51 hitWord: レンジャー赤
index: 40 hitWord: レンジャー紫
index: 26 hitWord: レンジャー青
index: 13 hitWord: レンジャー緑
index: 1 hitWord: レンジャー黄
検索結果が逆向きに
なりました。
お疲れ様でした。