Java中的字元串是非常常用的數據類型,而其中的indexOf方法則是在字元串中查找指定字元或子字元串第一次出現的位置的最常用的方法之一。在使用indexOf方法時,返回的值會給大家帶來很多疑惑,本篇文章將詳細闡述Java indexOf方法返回值相關的問題。
一、方法概述
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
public int indexOf(int ch)
public int indexOf(int ch, int fromIndex)
筆者在這裡先介紹一下Java的indexOf方法,這個方法用於查找一個字元串在另一個字元串中第一次出現的位置。indexOf方法支持四種重載,分別的區別即參數不同,具體內容如上面代碼所示。
二、基礎知識回顧
其實在使用indexOf方法時,返回的值是查找到的第一個字元或者字元串所在的位置。例如,在下面這個字元串中,如果我們想查找「world」這個字元串所在的位置:
String str = "Hello world";
int index = str.indexOf("world");
System.out.println(index);
上面結果輸出的位置是6,這個位置表示的就是第一個「w」所在的位置。
三、返回值為-1的情況
當indexOf方法未能找到需要查找的字元或字元串時,返回值就變成-1了。例如,在下面這個字元串中,如果我們想查找「Java」這個字元串所在的位置:
String str = "Welcome to Java";
int index = str.indexOf("Java");
System.out.println(index);
因為「Java」這個字元串在原始字元串中並不存在,所以這個方法返回值為-1(如果要檢查字元串是否包含另一個字元或字元串,可以使用contains方法)。
四、多次出現時返回值
當字元串中有多個需要查找的字元或字元串時,indexOf方法只會返回第一個所在位置的索引。例如,在下面這個字元串中,如果我們想查找「o」這個字元所在的位置:
String str = "Today is a good day";
int index = str.indexOf("o");
System.out.println(index);
這個方法的返回值是1,代表字元串第一個「o」的位置。而這裡字元串中仍然存在兩個「o」,但返回值只展示了第一個出現「o」的位置。如果想查找最後一個「o」所在的位置,可以使用lastIndexOf方法。
五、利用indexOf方法查找正則表達式
indexOf方法也可以用於查找正則表達式。考慮到字元串中含有多個需要查找的字元串的情況,正則表達式對於這種需求是非常適用的。例如,在下面這個字元串中,如果我們想查找兩個字元e之間的所有內容:
String str = "This is a test string.";
int index1 = str.indexOf("e");
int index2 = str.indexOf("e", index1 + 1);
String substring = str.substring(index1 + 1, index2);
System.out.println(substring);
這個方法的返回值為”is a t”,因為正則搜索包括了「e」,所以字元串結果是不包括「e」這個字元的。
六、結章節附註意事項
最後,當在Java中使用indexOf方法時,需要根據實際需求對其返回值進行檢查。有時,返回值可能是-1,這意味著要查找的字元或字元串不存在於源字元串中。在許多情況下,需要檢查其他位置是否支持結果,包括最後一個結果。
要看清問題,不要忽視一些必要的檢查。否則,結果將導致意想不到的錯誤。掌握Java基礎知識,多試試都是好事,也可以參考JDK相關說明,儘可能充分發掘其功能。
原創文章,作者:VGDZH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317399.html