String indexOf()方法返回字符串中指定字符/子字符串首次出现的索引。
String indexOf()方法的语法
string.indexOf(int ch, int fromIndex)
或
string.indexOf(string str, int fromIndex)
为了找到字符的索引,indexOf()使用以下两个参数:
ch - 要找到起始索引的字符
fromIndex(可选)- 如果传递了fromIndex,则从该索引开始搜索ch字符
要在字符串中找到指定子字符串的索引,indexOf()使用以下两个参数:
str - 要查找其起始索引的字符串
fromIndex(可选)- 如果传递了fromIndex,则从该索引开始搜索str字符串
返回指定字符/字符串的第一个匹配项的索引
如果找不到指定的字符/字符串,则返回 -1。
//Java字符串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
//字符不在字符串中
result = str1.indexOf('j');
System.out.println(result); // -1
//获取“ ava”的索引
result = str1.indexOf("ava");
System.out.println(result); // 7
//子字符串不在字符串中
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(在第一个位置找到)。这是因为空字符串是每个子字符串的子集。
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返回第二个“a”的索引。使用indexOf('a', 4)。这是因为搜索从索引4开始。
Java”字符串位于“Learn Java programming”字符串中。 但是,str1.indexOf("Java",8)返回-1(未找到字符串)。 这是因为搜索从索引8开始,并且在“ va programming”中没有“ Java”。
相关阅读: Java字符串lastIndexOf()