Java 文字列の位置を取得するサンプル(indexOf/lastIndexOf)

Javaの文字列の位置を取得するサンプルです。
StringクラスのindexOfメソッドまたはlastIndexOfメソッドを使用します。

確認環境
・Java 8

目次

indexOfメソッド

public  int  indexOf (String str)
public  int  indexOf (String str,int fromIndex)
  • 文字列の最初の文字から右に検索して引数に指定した文字列が出現した位置を返します。
  • 最初の1文字目の位置は0です。
  • 該当の文字がなかったときは-1を返します。
  • 2つめの引数は検索を開始する位置です。
  • Stringクラスのメソッドです。
  • 以下はJava8 API仕様のindexOfメソッドのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#indexOf-java.lang.String-

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を左(先頭の文字)から検索します。

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

		String str1 = "あいうabcあいう";
		
		System.out.println(str1.indexOf("b")); // 4

		System.out.println(str1.indexOf("abc")); // 3

		System.out.println(str1.indexOf("あいう")); // 0

		System.out.println(str1.indexOf("あいえ")); // -1
	}
}

8,10行目は、指定した文字列が見つかった位置を返しています。
12行目は、文字列を左から見て最初に出現する"あいう"の位置を返しています。
14行目は、指定した文字列がないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

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

		String str1 = "あいうえお";

		System.out.println(str1.indexOf("う",2)); // 2

		System.out.println(str1.indexOf("う",3)); // -1
	}
}

8行目の引数は2なので対象の文字列は(うえお)です。引数の文字列(う)が見つかった位置を返しています。
10行目の引数は3なので対象の文字列は(えお)です。引数の文字列(う)が見つからないので-1を返します。

 

lastIndexOfメソッド

public  int  lastIndexOf (String str)
public  int  lastIndexOf (String str,int fromIndex)
  • 文字列の最後の文字から左に検索して引数に指定した文字列が出現した位置を返します。
  • 最初の1文字目の位置は0です
  • 該当の文字がなかったときは-1を返します。
  • 2つめの引数は検索を開始する位置です。
  • Stringクラスのメソッドです。
  • 以下はJava8 API仕様のlastIndexOfメソッド(引数1つ)のリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#lastIndexOf-java.lang.String-

文字列の位置を取得する

文字列の位置を取得するサンプルです。
文字列を右(最後の文字)から検索します。

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

		String str1 = "あいうabcあいう";
		
		System.out.println(str1.lastIndexOf("b")); // 4

		System.out.println(str1.lastIndexOf("abc")); // 3

		System.out.println(str1.lastIndexOf("あいう")); // 6

		System.out.println(str1.lastIndexOf("あいえ")); // -1
	}
}

8,10行目は、引数の文字列が見つかった位置を返しています。
12行目は、文字列を右から見て最初に出現する"あいう"の位置を返しています。
14行目は、引数の文字列が見つからないので-1を返します。

検索開始位置を指定する

検索開始位置を指定するサンプルです。

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

		String str1 = "あいうabcあいう";

		System.out.println(str1.lastIndexOf("う",4)); // 2

		System.out.println(str1.lastIndexOf("a",2)); // -1
	}
}

8行目の引数は4なので対象の文字列は(あいうab)です。引数の文字列(う)が見つかった位置を返しています。
10行目の引数は2なので対象の文字列は(あいう)です。引数の文字列が見つからないので-1を返します。

関連の記事

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

△上に戻る