CodeGym /Java Blog /ランダム /Java String lastIndexOf() メソッド
John Squirrels
レベル 41
San Francisco

Java String lastIndexOf() メソッド

ランダム グループに公開済み
lastIndexOf ()メソッドは、文字列内の指定された文字または部分文字列が最後に出現した位置を返します。ある種の長いテキスト、つまり長い行があると想像してください。たとえば、それは手紙である可能性があり、すでに知っている名前で宛先に最後に電話をかけた場所を見つける必要があります。このような場合には、Java StringクラスのIndexOfメソッドが非常に適しています。文字列内で最初に出現する文字が必要な場合は、lastIndexOf()と非常によく似た、indexOf()メソッドを使用できます。lastIndexOf()には 4 つのバリエーションがあります。方法。メソッドのオーバーロードにより、名前は同じでパラメーターが異なる 4 つのメソッドが存在する可能性があります。以下では、この方法の 4 つのバリエーションすべてを例とともに見ていきます。

lastIndexOf(int ch)

このメソッドは、文字シーケンス内で最後に出現した文字のインデックスを返します。

メソッドの構文


int lastIndexOf(int ch)
パラメータ: ch : 文字。

コード例


public class LastIndexOf1 {

       public static void main(String args[])
       {
          //letter to find index in String
           char letter = 'd';
           //String to find an index of a letter
           String myString = "This is major Tom to ground control, do you copy";
           //The index of last appearance of d will be printed
           System.out.println("Last Index of d = " + myString.lastIndexOf(letter));
       }
}
出力は次のとおりです。
d = 37 の最後のインデックス
探している文字が文字列にない場合、メソッドは -1 を返します。

public class LastIndexOf1 {

       public static void main(String args[])
       {
           char letter = 'z';
           String myString = "This is major Tom to ground control, do you copy";
           System.out.println("Last Index of z = " + myString.lastIndexOf(letter));
       }
}
出力は次のとおりです。
z の最後のインデックス = -1

lastIndexOf (int ch, int fromIndex)

lastIndexOf(int ch, int fromIndex) : この文字が文字列内で表されている場合、このメソッドは、指定されたインデックスから開始して逆方向に検索して、ch 文字が最後に出現したインデックスを返します。この文字が部分文字列で表されていない場合は、-1 を返します。

メソッドの構文


public int lastIndexOf(int ch, int fromIndex)
パラメータ: ch : 文字。 fromIndex : 検索を開始するインデックス。

lastIndexOf(int ch, int fromIndex) のコード例


public class LastIndexOf2 {

   public static void main(String args[])
   {
       //letter to find index in String
       char letter = 'o';
       //String to find an index of a letter
       String myString = "This is major Tom to ground control, do you copy";
       //The index of last appearance of o before 20th symbol will be printed
       System.out.println("Last Index of o = " + myString.lastIndexOf(letter, 20));
   }
}
出力は次のとおりです。
o の最後のインデックス = 19
インデックスから行の先頭に進むときに、その文字が見つからなかった場合、メソッドは -1 を返します。

public class LastIndexOf2 {

   public static void main(String args[])
   {
       char letter = 'o';
       String myString = "This is major Tom to ground control, do you copy";
       System.out.println("Last Index of o = " + myString.lastIndexOf(letter, 10));
   }
}
出力は次のとおりです。
o の最後のインデックス = -1

lastIndexOf(文字列 str)

lastIndexOf(String str) : このメソッドのバリエーションは、引数としてStringを受け取り、この文字列内で指定された部分文字列が最初に出現するインデックスを返します。部分文字列として出現しない場合、メソッドは -1 を返します。

メソッドの構文


public int lastIndexOf(String str)
パラメータ: str : 文字列。

lastIndexOf(String str) のコード例


public class LastIndexOf3 {
   public static void main(String args[])
   {      
       String myString = "This is major Tom to ground control, do you copy";
       System.out.println( myString.lastIndexOf("Tom"));
   }
}
出力は次のとおりです。
14
そのような部分文字列が存在しない場合、メソッドは -1 を返します。部分文字列「tom」の先頭のインデックスを見つけてみましょう。

public class LastIndexOf3 {
   public static void main(String args[])
   {

       String myString = "This is major Tom to ground control, do you copy";
       System.out.println( myString.lastIndexOf("tom"));
   }
}
「T」と「t」は別の記号であるため、この文字列には「トム」が存在しないことに注意してください。出力は次のとおりです。
-1

lastIndexOf(String str, int fromIndex)

lastIndexOf(String str, int fromIndex)。このメソッドのバリアントは、指定されたインデックスから開始して逆方向に検索して、指定された部分文字列が最後に出現した文字列内のインデックスを返します。

メソッドの構文


public int lastIndexOf(String str, int beg)
パラメータ str : 文字列。 fromIndex : 検索を開始するインデックス。

lastIndexOf(String str, int fromIndex) のコード例

「地上管制へのトム少佐です、コピーしますか」という文字列の中で最後に出現する部分文字列「ro」のインデックスを見つけてみましょう。1 回目は文字列全体を調べ、2 回目はインデックス 25 の文字から開始します (覚えているように、上位制約を使用すると、インデックスの検索は末尾から先頭に進みます)。

public class LastIndexOf4 {
   public static void main(String[] args) {
       String myString = "This is major Tom to ground control, do you copy";
       System.out.println( myString.lastIndexOf("ro"));
       System.out.println(myString.lastIndexOf("ro",25));
   }
}
出力は次のとおりです。
32 22
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION