跳到主要内容

Java字符串indexOf()方法

indexOf() 方法返回指定字符/子字符串在字符串中首次出现的索引。

示例

class Main {
public static void main(String[] args) {
String str1 = "Java is fun";
int result;

// 获取字符 's' 的索引
result = str1.indexOf('s');

System.out.println(result);
}
}

// 输出:6

indexOf() 方法的语法

String 类的 indexOf() 方法的语法是:

string.indexOf(int ch, int fromIndex)

或者

string.indexOf(String str, int fromIndex)

这里,stringString 类的一个对象。

indexOf() 方法参数

为了找到字符的索引,indexOf() 接受这两个参数:

  • ch - 要找到起始索引的字符
  • fromIndex(可选)- 如果传递了 fromIndex,则从这个索引开始搜索 ch 字符

为了找到字符串中指定子字符串的索引,indexOf() 接受这两个参数:

  • str - 要找到起始索引的字符串
  • fromIndex(可选)- 如果传递了 fromIndex,则从这个索引开始搜索 str 字符串

indexOf() 方法返回值

  • 返回 指定字符/字符串首次出现的索引
  • 如果没有找到指定的字符/字符串,返回 -1

示例 1:Java String indexOf()

// Java String indexOf() 方法,只有一个参数
class Main {
public static void main(String[] args) {
String str1 = "Learn Java";
int result;

// 获取字符 'J' 的索引
result = str1.indexOf('J');
System.out.println(result); // 6

// 返回 'a' 第一次出现的索引
result = str1.indexOf('a');
System.out.println(result); // 2

// 字符串中没有字符 'j'
result = str1.indexOf('j');
System.out.println(result); // -1

// 获取 "ava" 的索引
result = str1.indexOf("ava");

System.out.println(result); // 7

// 字符串中没有子串 "java"
result = str1.indexOf("java");

System.out.println(result); // -1

// 空字符串在字符串中的索引
result = str1.indexOf("");

System.out.println(result); // 0
}
}

注意事项:

  • 字符 'a' 在字符串 "Learn Java" 中出现了多次。indexOf() 方法返回 'a' 第一次出现的索引(即 2)。
  • 如果传递了空字符串,indexOf() 返回 0(在第一个位置找到)。这是因为空字符串是每个子字符串的子集。

示例 2:带 fromIndex 参数的 indexOf()

class Main {
public static void main(String[] args) {
String str1 = "Learn Java programming";
int result;

// 获取字符 'a' 的索引
// 搜索从索引 4 开始
result = str1.indexOf('a', 4);

System.out.println(result); // 7

// 获取 "Java" 的索引
// 搜索从索引 8 开始
result = str1.indexOf("Java", 8);

System.out.println(result); // -1
}
}

注意事项:

  • 字符串 "Learn Java programming"'a' 第一次出现的位置是索引 2。然而,当使用 str1.indexOf('a', 4) 时,返回第二个 'a' 的索引。这是因为搜索从索引 4 开始。
  • "Learn Java programming" 字符串中包含 "Java"。然而,str1.indexOf("Java", 8) 返回 -1(未找到字符串)。这是因为搜索从索引 8 开始,在 "va programming" 中没有 "Java"

建议阅读 Java String lastIndexOf()