「部分文字列を使ってできることをいくつか確認してください。」

8) 部分文字列を見つけるにはどうすればよいですか?

IndexOfメソッドとlastIndexOfメソッドを使用する、文字列内の文字列を検索できます。これらのメソッドには 4 つのバージョンがあります。

IndexOfメソッド、指定された String 内で文字列を検索します。このメソッドは、指定された文字列の先頭から、またはインデックスから開始して文字列を検索できます (2 番目のメソッド)。文字列が見つかった場合、メソッドはその最初の文字のインデックスを返します。見つからない場合は、-1 を返します。

方法
int indexOf(String str)
String s = "Good news, everyone!";
int index = s.indexOf ("ne");
結果:

index == 5
int indexOf(String str, int from)
String s = "Good news, everyone!";
int index = s.indexOf ("ne", 7);
結果:

index == 16

" lastIndexOfメソッドは、指定された文字列を文字列の末尾から逆方向に検索します。このメソッドは、文字列の最後から文字列を検索することも、インデックスから開始して文字列を検索することもできます (2 番目のメソッド)。文字列が見つかった場合は、このメソッドは最初の文字のインデックスを返します。見つからない場合は -1 を返します。」

方法
int lastIndexOf(String str)
String s = "Good news, everyone!";
int index = s.lastIndexOf("ne");
結果:

index == 17
int lastIndexOf(String str, int from)
String s = "Good news, everyone!";
int index = s.lastIndexOf("ne", 15);
結果:

index == 5

9) 文字列の一部を別の文字列に置き換えるにはどうすればよいですか?

これには3つの方法があります。

replaceメソッドは、出現した特定の文字をすべて別の文字に置き換えます。

replaceAllメソッド  は、出現するすべての部分文字列を別の文字列に置き換えます。

replaceFirst メソッド 、渡された部分文字列の最初の出現を指定された文字列に置き換えます。

方法
String replace(char oldChar, char newChar)
String s = "Good news, everyone!";
String s2 = s.replace>('o', 'a');
結果:

s2 == "Gaad news, everyane!";
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("ne", "_");
結果:

s2 == "Good _ws, everyo_!";
String replaceFirst(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceFirst ("ne", "_");
結果:

s2 == "Good _ws everyone!";

「しかし、これらには注意する必要があります。最後の 2 つのメソッド ( replaceAll と replaceFirst ) では、探している文字列は単純な文字列ではなく、正規表現として渡されます。しかし、それについては後で説明します。」