JavaRush /Java Blog /Random-JA /String クラスの IndexOf メソッド: 必要な理由とその仕組み

String クラスの IndexOf メソッド: 必要な理由とその仕組み

Random-JA グループに公開済み
こんにちは!プログラマーは多くの場合、メソッドがどのように機能するかを考えずに自動的にメソッドを使用します。これらは知っておくべき基本的なテクニックです。

メソッドのオーバーロードとは何ですか?

タイトルで述べたメソッドを説明する前に、メソッドのオーバーロードとは何かを思い出してみましょう (そして誰かが知っているでしょう)。 Javaメソッドのオーバーロードを使用すると、同じクラス内で同じ名前の 2 つ以上のメソッドを定義できます。これは、入力パラメータが異なる場合にのみ可能です。この場合、メソッドはオーバーロードされ、プロセス自体はメソッドのオーバーロードと呼ばれます。メソッドのオーバーロードは、 Java におけるポリモーフィズムのString クラスの IndexOf メソッド: 必要な理由とその仕組み - 1基本原則の 1 つです。

indexOfクラスメソッドとは何ですか?String

長い文字列があると想像してください。たとえば、手紙の場合、すでに知っている名前で宛先への最初の宛先が書かれている場所を見つける必要があります。どうやってやりますか?indexOf javaクラスメソッドを使用しますString。このメソッドは、上で説明したメソッドのオーバーロードの典型的な例です。

メソッドのオプションindexOf

この方法にはjava string indexOf4 つの異なるバリエーションがあります。

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お気づきかもしれませんが、これら 2 つのメソッドのシグネチャ (メソッドが引数として受け取るもの) では、渡されるシンボルの型は ではintなくとして指定されますchar。ただし、送信しましたchar。これは、文字列がバイト配列として格納され、セルが type の特定の文字に対応するためですchar。バイト間の対応はcharASCII テーブルに従って行われます。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);

3番。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 として認識します。この場合、メソッドは再び前のメソッド (開始インデックスが指定されていないもの) と同様になります。今日はこれで終わりです。Javaのおかげでより多くの知識が得られますindexOf
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION