HOWTO · Java
Java のインデックスで文字列の文字を置き換える
この記事では、Java で文字列中の文字をインデックスで置換する方法を紹介します。
この記事では、Java で文字列の中の文字を特定のインデックスで置換する方法を紹介します。目的を達成するためには様々な方法がありますが、以下の例で説明します。
Java で文字列中の文字をインデックスで置換する substring() を用いる
最初の例では、文字列 ab があり、その中には大文字の文字 A が含まれていますが、これは文に合わないので、小文字の文字 a に置き換えたいと思います。
これを置き換えるには、String クラスの substring() 関数を用います。対象となる文字はインデックス 8 の位置にあります。
ab.substring(0, index) は 0 から 8 番目の位置までの文字列の一部を返します。この部分を新しい文字 a と結合し、残りの文字列を ab.substring(index + 1) で結合します。
public class ReplaceCharAtIndex {
public static void main(String[] args) {
String ab = "This is A String";
int index = 8;
String newString = ab.substring(0, index) + 'a' + ab.substring(index + 1);
System.out.println(newString);
}
}
出力:
This is a String
Java で StringBuilder() を使用してインデックス付き文字列中の文字の置換
先ほどの例で使用したのと同じ文字列がありますが、Java の通常の文字列は不変なので、StringBuilder() を使用して変異可能な新しい文字列を作成します。これで newString が変更可能になったので、setChartAt() メソッドを使って新しい char を位置やインデックスに設定することができます。
newString.setCharAt(8, 'a') は、文字 a を 8 番目の位置に設定します。
public class ReplaceCharAtIndex {
public static void main(String[] args) {
String ab = "This is A String";
StringBuilder newString = new StringBuilder(ab);
newString.setCharAt(8, 'a');
System.out.println(newString);
}
}
出力:
This is a String
文字列内の文字をインデックスで Java で文字列を Array の chars に変換して置換する
最後のメソッドは、文字列 oldString を toCharArray() を用いて char の配列に変換します。配列内の任意の値を位置を指定して置き換えることができます。
このように、oldString にはスペルミスがあるので、文字 ( m ) を文字 ( n ) に置き換える必要があります。文字をインデックスで置き換えるには、charArray[index] = 'n'を使用します。
最後に、char[] を String.valueOf() を用いて string に変換します。出力は文字が置換されたことを示しています。
public class ReplaceCharAtIndex {
public static void main(String[] args) {
String oldString = "This is an example strimg";
int index = 23;
char[] charArray = oldString.toCharArray();
charArray[index] = 'n';
String newString = String.valueOf(charArray);
System.out.println(newString);
}
}
出力:
This is an example string