JavaRush /Java Blog /Random-TW /String 類別的 IndexOf 方法:為什麼需要它以及它是如何運作的

String 類別的 IndexOf 方法:為什麼需要它以及它是如何運作的

在 Random-TW 群組發布
你好!程式設計師經常自動使用方法,而不考慮它們是如何運作的。這些是您必須了解的基本技術。

什麼是方法重載?

在我們看標題中提到的方法之前,讓我們記住(並且有人會知道)方法重載是什麼。 Java方法重載允許在同一個類別中定義兩個或多個具有相同名稱的方法。僅當它們具有不同的輸入參數時才可能實現。在這種情況下,方法稱為重載,而過程本身稱為方法重載。方法重載是Java中多態性的String 類別的 IndexOf 方法:為什麼需要它以及它如何運作 - 1基本原則之一。

indexOf類別方法有什麼用?String

想像一下你有一條長繩。例如一封信,你需要透過你已經知道的名字找到收件者的第一個地址所在的地方。你將如何做到這一點?使用indexOf java類別方法String。這個方法是我們上面討論過的方法重載的典型例子。

方法選項indexOf

該方法java string indexOf有四種不同的變體:

1號。indexOf(int ch)

此方法int indexOf(int ch)傳回給定字串中指定字元第一次出現的索引。換句話說,我們將得到給定字元第一次出現的次數,從左到右計數。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
控制台輸出:

2
如果我們要找的字元不在這一行中,我們將得到-1。
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
控制台輸出:

-1
PS 為了不混淆任何東西,你一定不要忘記一行中的字元不是從「1,2,3...」開始計算的,而是從「0,1,2...」開始計算的

2號。indexOf(int ch, int fromIndex)

此方法int indexOf(int ch, int fromIndex)傳回此字串中指定字元第一次出現的索引,並從指定索引處開始搜尋。這種方法是前一種方法的更現代化的版本。不同之處在於我們指示搜尋實際開始的元素編號。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
控制台輸出:

9
如果進行搜尋的索引超過字串的長度,則答案將為 -1。String 類別的 IndexOf 方法:為什麼需要它以及它如何運作 - 2您可能已經注意到,在這兩個方法的簽名中(方法將其作為參數),傳遞的符號的類型指定為int,而不是char。然而,我們傳送了char。這是因為字串儲存為位元組數組,其中單元格對應於類型的特定字元char。位元組之間的對應關係char是根據ASCII表進行的。ASCII(美國資訊交換標準代碼)是將常見的可列印和不可列印字元對應到數字代碼的表。因此,當傳遞某個字元時char,它會自動轉換為在 ASCII 表中表示該字元的數字。基於此,我們可以直接將數字(int)傳遞給方法,它對應到我們需要的字元。例如,ASCII 表中的字元「e」對應於數字 101,因此我們可以重複前面的範例,但不需要char
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
我們的控制台輸出沒有改變:

9
PS 在某些情況下,這些方法是可以互換的,例如str.indexOf('e');它會類似 - str.indexOf('e', 0);

第三。indexOf(String str)

此方法int indexOf(String str)傳回給定行中指定子字串第一次出現的索引。它與第一個選項根本不同,因為此方法已經搜尋整個子字串 ( String)。多虧了這一點,我們可以尋找更具體的東西。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
控制台輸出:

0
PS 所有變體indexOf均區分大小寫:大寫字元(大寫字母)和小寫字元(小寫字母)被視為不同。當心。

4號。indexOf(String str, int fromIndex)

此方法indexOf(String str, int fromIndex)傳回指定子字串在該行中第一次出現的索引,從指定索引開始。此選項又是一個更現代化的先前選項,但指示了將進行搜尋的位置。例子:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
控制台輸出:

26
PS 如果指定負的起始索引,則該方法indexOf會將其視為 0。在這種情況下,該方法將再次類似於前一種方法(其中未指定起始索引)。這就是今天的全部內容。現在,由於indexOfJava,您有了更多的知識!
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION