ホームページ > Java > &#&チュートリアル > 不変の Java 文字列内の特定のインデックスにある文字を置換するにはどうすればよいですか?

不変の Java 文字列内の特定のインデックスにある文字を置換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-22 09:47:19
オリジナル
281 人が閲覧しました

How Can I Replace a Character at a Specific Index in an Immutable Java String?

不変文字列: 特定のインデックスでの文字置換

Java で文字列を扱う場合、特定のインデックスで特定の文字を置換する必要が生じる場合があります。ただし、可変データ型とは異なり、Java の文字列は不変です。つまり、文字列を直接変更することはできません。

次のコード スニペットを考えてみましょう。

String myName = "domanokz";
myName.charAt(4) = 'x'; // Throws an error
ログイン後にコピー

このコードは、インデックスの文字を変更しようとします。 myName 文字列には 4 が含まれていますが、文字列は不変であるため、エラーが発生します。

解決策: 新規作成String

これを回避するには、必要な変更を加えて新しい文字列を作成する必要があります。これは、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 クラスを使用できます。変更可能な文字列表現の作成。以下に例を示します。

StringBuilder myName = new StringBuilder("domanokz");
myName.setCharAt(4, 'x');

System.out.println(myName);
ログイン後にコピー

StringBuilder クラスは、基になる文字列表現を変更できる setCharAt などのメソッドを提供します。このクラスを使用すると、文字の置換が必要になるたびに新しい文字列を作成する必要がなくなります。変更が完了したら、toString メソッドを使用して結果の文字列を取得できます。

以上が不変の Java 文字列内の特定のインデックスにある文字を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート