String indexOf()方法返回字符串中指定字符/子字符串首次出現(xiàn)的索引。
String indexOf()方法的語法
string.indexOf(int ch, int fromIndex)
或
string.indexOf(string str, int fromIndex)
為了找到字符的索引,indexOf()使用以下兩個參數(shù):
ch - 要找到起始索引的字符
fromIndex(可選)- 如果傳遞了fromIndex,則從該索引開始搜索ch字符
要在字符串中找到指定子字符串的索引,indexOf()使用以下兩個參數(shù):
str - 要查找其起始索引的字符串
fromIndex(可選)- 如果傳遞了fromIndex,則從該索引開始搜索str字符串
返回指定字符/字符串的第一個匹配項的索引
如果找不到指定的字符/字符串,則返回 -1。
//Java字符串indexOf()只有一個參數(shù)
class Main {
public static void main(String[] args) {
String str1 = "Learn Java";
int result;
//獲取字符“ J”的索引
result = str1.indexOf('J');
System.out.println(result); // 6
//返回第一個出現(xiàn)的“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”字符串中多次出現(xiàn)。 indexOf()方法返回第一次出現(xiàn)的“ 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”字符串中第一次出現(xiàn)的“a”是在索引2處。但是,當(dāng)str1返回第二個“a”的索引。使用indexOf('a', 4)。這是因為搜索從索引4開始。
Java”字符串位于“Learn Java programming”字符串中。 但是,str1.indexOf("Java",8)返回-1(未找到字符串)。 這是因為搜索從索引8開始,并且在“ va programming”中沒有“ Java”。
相關(guān)閱讀: Java字符串lastIndexOf()