Java で文字列を扱う場合、特定のインデックスで特定の文字を置換する必要が生じる場合があります。ただし、可変データ型とは異なり、Java の文字列は不変です。つまり、文字列を直接変更することはできません。
次のコード スニペットを考えてみましょう。
String myName = "domanokz"; myName.charAt(4) = 'x'; // Throws an error
このコードは、インデックスの文字を変更しようとします。 myName 文字列には 4 が含まれていますが、文字列は不変であるため、エラーが発生します。
これを回避するには、必要な変更を加えて新しい文字列を作成する必要があります。これは、substring メソッドを使用して実現できます。
String myName = "domanokz"; String newName = myName.substring(0, 4) + 'x' + myName.substring(5);
substring メソッドは、指定されたインデックスに基づいて元の文字列から部分文字列を抽出します。この場合、2 つの部分文字列が作成されます。1 つはインデックス 0 からインデックス 4 (インデックス 4 を除く) で、もう 1 つはインデックス 5 から文字列の末尾までです。これらの部分文字列は、目的の文字 'x' と連結されて、新しい文字列 newName を形成します。
代わりに、StringBuilder クラスを使用できます。変更可能な文字列表現の作成。以下に例を示します。
StringBuilder myName = new StringBuilder("domanokz"); myName.setCharAt(4, 'x'); System.out.println(myName);
StringBuilder クラスは、基になる文字列表現を変更できる setCharAt などのメソッドを提供します。このクラスを使用すると、文字の置換が必要になるたびに新しい文字列を作成する必要がなくなります。変更が完了したら、toString メソッドを使用して結果の文字列を取得できます。
以上が不変の Java 文字列内の特定のインデックスにある文字を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。