Java String indexOf() メソッド
indexOf() メソッドには次の4つの形式があります:
public int indexOf(int ch):指定した文字が文字列内で最初に出現する位置のインデックスを返します。この文字列にそのような文字がない場合は -1 を返します。
public int indexOf(int ch, int fromIndex):fromIndex の位置から検索を開始し、指定した文字が文字列内で最初に出現する位置のインデックスを返します。この文字列にそのような文字がない場合は -1 を返します。
int indexOf(String str):指定した文字が文字列内で最初に出現する位置のインデックスを返します。この文字列にそのような文字がない場合は -1 を返します。
int indexOf(String str, int fromIndex):fromIndex の位置から検索を開始し、指定した文字が文字列内で最初に出現する位置のインデックスを返します。この文字列にそのような文字がない場合は -1 を返します。
構文
public int indexOf(int ch ) 或 public int indexOf(int ch, int fromIndex) 或 int indexOf(String str) 或 int indexOf(String str, int fromIndex)
パラメータ
ch— 文字。Unicode エンコーディング。
fromIndex— 検索を開始するインデックス位置。最初の文字は 0、2番目は 1、以降同様に続きます。
str— 検索する部分文字列。

戻り値
文字列、または文字のUnicodeエンコーディングが文字列内で出現する位置を検索します:
例 1
public class Main {
public static void main(String args[]) {
String string = "aaa456ac";
//指定した文字が文字列内のインデックスを検索します。存在する場合はその文字列インデックスを返し、存在しない場合は -1 を返します。
System.out.println(string.indexOf("b")); //indexOf(String str); 戻り結果:-1、"b"は存在しません
//4番目の文字位置から後方に検索を続けます。現在位置を含みます。
System.out.println(string.indexOf("a",3));//indexOf(String str, int fromIndex); 戻り結果:6
//(以前との違い:上のパラメータは String 型、下のパラメータは int 型です)参考データ:a-97, b-98, c-99
//先頭から指定した文字が存在するかどうかを検索します
System.out.println(string.indexOf(99));//indexOf(int ch);戻り結果:7
System.out.println(string.indexOf('c'));//indexOf(int ch);戻り結果:7
//fromIndex から ch を検索します。これは文字型変数であり、文字列ではありません。文字 a に対応する数値は 97 です。
System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex); 戻り結果:6
System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex); 戻り結果:6
}
}
出力結果は次のとおりです:
-1 6 7 7 6 6
指定した部分文字列が文字列内で最初に出現する位置のインデックスを、指定したインデックスから検索します。
例 2
public class Test {
public static void main(String args[]) {
String Str = new String("サンプル:www.example.com");
String SubStr1 = new String("サンプル");
String SubStr2 = new String("com");
System.out.print("文字 o が最初に出現する位置を検索:" );
System.out.println(Str.indexOf( 'o' ));
System.out.print("14番目の位置から文字 o が最初に出現する位置を検索:" );
System.out.println(Str.indexOf( 'o', 14 ));
System.out.print("部分文字列 SubStr1 が最初に出現する位置:" );
System.out.println( Str.indexOf( SubStr1 ));
System.out.print("15番目の位置から部分文字列 SubStr1 が最初に出現する位置を検索:" );
System.out.println( Str.indexOf( SubStr1, 15 ));
System.out.print("部分文字列 SubStr2 が最初に出現する位置:" );
System.out.println(Str.indexOf( SubStr2 ));
}
}
上記のプログラムの実行結果は次のとおりです:
查找字符 o 第一次出现的位置 :12 从第14个位置查找字符 o 第一次出现的位置 :17 子字符串 SubStr1 第一次出现的位置:9 从第十五个位置开始搜索子字符串 SubStr1 第一次出现的位置 :-1 子字符串 SubStr2 第一次出现的位置 :16
その他の拡張
Java Stringクラス