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處。但是,當str1返回第二個“a”的索引。使用indexOf('a', 4)。這是因為搜索從索引4開始。
Java”字符串位于“Learn Java programming”字符串中。 但是,str1.indexOf("Java",8)返回-1(未找到字符串)。 這是因為搜索從索引8開始,并且在“ va programming”中沒有“ Java”。
相關閱讀: Java字符串lastIndexOf()