java中尋找字串
String類提供了兩種尋找字串的方法,它們允許在字串中搜尋指定的字元或字串,其中的indexOf()方法用於搜尋字元或子字串首次出現的位置,lastIndexOf()方法用於搜尋字元或子字元 尋找字串
String類提供了兩種尋找字串的方法,它們允許在字串中搜尋指定的字元或字串,其中的indexOf()方法用於搜尋字元或子字串首次出現的位置,lastIndexOf()方法用於搜尋字元或子字串最後一次出現的位置。
這兩種方法被幾種不同的方法重載。在所有這些情況下,方法返回字元或子字串被發現的位置的下標,當搜尋失敗時,返回−1。
indexOf(int ch)方法
該方法用於擷取字串中指定字元第一次出現處的索引,若字元沒有出現則返回−1。
str.indexOf(ch)
ch:要搜尋的字元。
str:一個字串對象。
lastIndexOf(int ch)方法
該方法使用者擷取字串中指定字元最後一次出現處的索引,若字元沒有出現則返回−1。
str.lastIndexOf(ch)
ch:要搜尋的字元。
str:一個字串對象。
indexOf(String str)方法
該方法用於擷取字串中指定的子字串首次出現的索引位置,如果子字串作為該字串的子字串出現,則返回該子字串的第一個字元的索引,如果沒有作為一個子字串出現則返回−1。
str.indexOf(substr)
substr:搜尋的字串。
str:一個字串對象。
lastIndexOf(String str)方法
該方法用於擷取字串中指定的子字串最後一次出現的索引位置。如果子字串作為字串的一個子字串出現了一次或更多次,則返回最後一次出現該子字串的第一個字元的索引。若沒有作為一個子字串出現則返回−1。
str.lastIndexOf(substr)
str:一個字串對象。
substr:搜尋的子字串。
注意:
這裡子字串由substr指定。返回該子字串在字串中最右端出現處的索引。最後的Null 字元串“”將被認為出現在下標值為this.length()方法的返回位置(即字串的長度)。
以上4種形式的方法,都不能指定搜尋的起點,下面將介紹另外幾種重載方法,根據指定搜尋的起始點來搜尋內容。
indexOf(int ch,int startIndex)
該方法根據指定搜尋起點,搜尋指定字元首次出現的位置。
文法:
indexOf(ch,startIndex)
ch:要搜尋的字元。
startIndex:開始尋找位置的索引。
lastIndexOf(ch, startIndex)方法
該方法根據指定的搜尋起點,搜尋指定字元最後一次出現的位置。
文法:
int lastIndexOf(ch,startIndex)
ch:要搜尋的字元。
startIndex:開始尋找位置的索引。
indexOf(String str, int startIndex)方法
該方法根據指定的搜尋起點,搜尋指定字串首次出現的位置。
indexOf(str,startIndex)
str:要搜尋的子字串。
startIndex:開始尋找位置的索引。
lastIndexOf(String str, int startIndex)方法
該方法根據指定的搜尋起點,搜尋子字串最後一次出現的位置。
lastIndexOf(str,startIndex)
str:要搜尋的子字串。
startIndex:開始尋找位置的索引。
下面以執行個體示範字串的各種搜尋方法。例如搜尋字串中指定的字元或字串的起始位置和終止位置。執行個體的實現步驟如下。
(1)建立StrSearch類,在該類中分別定義字串變數str和整型變數rs。然後輸出字串str的各種搜尋方法的返回結果到控制台中。
src\com\lzw\StrSearch.java關鍵代碼如下:
public static void main(String[] args) {
String str="mingrikeji"; // 建立字串
int rs=str.indexOf('i');
System.out.println("字元i首次出現的位置是:"+rs);
rs=str.lastIndexOf('i');
System.out.println("字元i最後一次出現的位置是:"+rs);
rs=str.lastIndexOf("ri");
System.out.println("字串ri首次出現的位置是:"+rs);
rs=str.lastIndexOf("ri");
System.out.println("字串i最後一次出現的位置是:"+rs);
rs=str.lastIndexOf('i',4);
System.out.println("從的5個字元後,字元i首次出現的位置是:"+rs);
}
src\com\lzw\StrSearch.java完整代碼:
package com.lzw;
public class StrSearch {
public static void main(String[] args) {
String str="mingrikeji";
int rs=str.indexOf('i');
System.out.println("字元i首次出現的位置是:"+rs);
rs=str.lastIndexOf('i');
System.out.println("字元i最後一次出現的位置是:"+rs);
rs=str.lastIndexOf("ri");