Java 文字列の位置を取得(indexOf/lastIndexOf)

JavaのindexOfメソッドとlastIndexOfメソッドで、文字列の位置を取得するサンプルです。

確認環境
・Java 8

目次

indexOf 前から検索する(indexOf)
  開始位置を指定する(indexOf)
lastIndexOf 後から検索する(lastIndexOf)
  開始位置を指定する(lastIndexOf)

前から検索する(indexOf)

public int indexOf(String str)

コード

indexOfメソッドのサンプルです。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
		String str1 = "abcabc";
		System.out.println(str1.indexOf("a")); // 0
		System.out.println(str1.indexOf("b")); // 1
		System.out.println(str1.indexOf("c")); // 2
		System.out.println(str1.indexOf("abc")); //0
		System.out.println(str1.indexOf("z")); // -1
		
		String str2 = "あいうあいう";
		System.out.println(str2.indexOf("あ")); // 0
		System.out.println(str2.indexOf("い")); // 1
		System.out.println(str2.indexOf("う")); // 2
	}
}

6~9行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。
10行目は、該当の文字がないので-1が返ります。
12行目は、変数に日本語の文字列を代入しています。
13~15行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。

開始位置を指定する(indexOf)

public int indexOf(String str,int fromIndex)

コード

indexOfメソッドで、検索開始位置を指定するサンプルです。
2つ目の引数は、検索を始める位置です。

package test1;
 
public class Test1 {
	public static void main(String[] args) {

		String str1 = "あいうあいう";
		System.out.println(str1.indexOf("あ",0)); // 0
		System.out.println(str1.indexOf("あ",1)); // 3
		System.out.println(str1.indexOf("あ",2)); // 3
		System.out.println(str1.indexOf("あ",3)); // 3
		System.out.println(str1.indexOf("あ",4)); // -1
		System.out.println(str1.indexOf("あ",5)); // -1
	}
}

7行目の2つめの引数は0で対象の文字列は(あいうあいう)です。位置の0が返ります。
8行目の2つめの引数は1で対象の文字列は(いうあいう)です。位置の3が返ります。
9行目の2つめの引数は2で対象の文字列は(うあいう)です。位置の3が返ります。
10行目の2つめの引数は3で対象の文字列は(あいう)です。位置の3が返ります。
11行目の2つめの引数は4で対象の文字列は(いう)です。文字(あ)はないので-1です。
12行目の2つめの引数は5で対象の文字列は(う)です。文字(あ)はないので-1です。

後から検索する(lastIndexOf)

public int lastIndexOf(String str)

コード

lastIndexOfメソッドのサンプルです。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
		String str1 = "abcabc";
		System.out.println(str1.lastIndexOf("a")); // 3
		System.out.println(str1.lastIndexOf("b")); // 4
		System.out.println(str1.lastIndexOf("c")); // 5
		System.out.println(str1.lastIndexOf("abc")); //3
		System.out.println(str1.lastIndexOf("z")); // -1
		
		String str2 = "あいうあいう";
		System.out.println(str2.lastIndexOf("あ")); // 3
		System.out.println(str2.lastIndexOf("い")); // 4
		System.out.println(str2.lastIndexOf("う")); // 5
	}
}

6~9行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。
10行目は、該当の文字がないので-1が返ります。
12行目は、変数に日本語の文字列を代入しています。
13~15行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。

開始位置を指定する(lastIndexOf)

public int lastIndexOf(String str,int fromIndex)

コード

lastIndexOfメソッドで、検索開始位置を指定するサンプルです。
2つ目の引数は、検索を始める位置です。

package test1;
 
public class Test1 {
	public static void main(String[] args) {

		String str1 = "あいうあいう";
		System.out.println(str1.lastIndexOf("あ",5)); // 3
		System.out.println(str1.lastIndexOf("あ",4)); // 3
		System.out.println(str1.lastIndexOf("あ",3)); // 3
		System.out.println(str1.lastIndexOf("あ",2)); // 0
		System.out.println(str1.lastIndexOf("あ",1)); // 0
		System.out.println(str1.lastIndexOf("あ",0)); // 0
	}
}

7行目の引数は5で対象の文字列は(あいうあいう)です。位置の3が返ります。
8行目の引数は4で対象の文字列は(あいうあい)です。位置の3が返ります。
9行目の引数は3で対象の文字列は(あいうあ)です。位置の3が返ります。
10行目の引数は2で対象の文字列は(あいう)です。位置の0が返ります。
11行目の引数は1で対象の文字列は(あい)です。位置の0が返ります。
12行目の引数は0で対象の文字列は(あ)です。位置の0が返ります。

関連の記事

Java 文字列の一部を取得するサンプル(substring)
Java 文字列の長さを取得するサンプル(length)
Java 文字列の先頭と末尾の空白を取り除くサンプル(trim)
Java 文字列を置き換えるサンプル(replace)
Java 大文字と小文字を変換する(toLowerCase/toUpperCase)
Java 文字列を分割して配列にする(split)
Java 文字列の始まり/終わりを確認(startsWith/endsWith)

△上に戻る