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()