Javaで文字列のある位置の文字を変更する方法

Javaでは、Stringクラスは不変です。つまり、Stringオブジェクトを作成すると、その内容は変更できません。ただし、文字列を変更するにはStringBuilderまたはStringBufferクラスを使用できます。

以下に StringBuilder を使用するサンプル コードを示します。

String str = "Hello, World!";
StringBuilder sb = new StringBuilder(str);
sb.setCharAt(7, 'J');
String newStr = sb.toString();
System.out.println(newStr);  // 输出:Hello, Jorld!

以下のコード例は、StringBuffer の使用例を示しています。

String str = "Hello, World!";
StringBuffer sb = new StringBuffer(str);
sb.setCharAt(7, 'J');
String newStr = sb.toString();
System.out.println(newStr);  // 输出:Hello, Jorld!

上記の例では、まず入力文字列と同じ内容のStringBuilder(またはStringBuffer)オブジェクトを作成しています。それから、setCharAt()メソッドを使って指定された位置の文字を新しい文字に置き換えています。最後に、toString()メソッドを利用して、変更されたStringBuilder(またはStringBuffer)オブジェクトを新しいStringオブジェクトに変換しています。

StringBuilderとStringBufferの違いに注意すべきで、StringBuilderはスレッドセーフではありませんがStringBufferはスレッドセーフです。したがって、マルチスレッド環境で文字列の修正操作を行う場合は、StringBufferクラスを使用する必要があります。

bannerAds