0

これを行う簡単な方法がないことを私は知っています。次の文字列があるとします-

"abcdefgh"

3文字目の「c」を「x」に置き換えて文字列を取得したい。

長い道のりはこれです -

s1 = substring before third character = "ab" in this case
s2 = new character = "x" in this case
s3 = substring after third character = "defgh" in this case
finalString = s1 + s2 + s3

もっと簡単な方法はありますか?次のような関数があるはずです

public String replace(int pos, char replacement)
4

8 に答える 8

5

を使用しStringBuilder#replace()ます。

StringBuilder sb = new StringBuilder("abcdefgh");
sb.replace(2, 3, "x");
String output = sb.toString();

http://ideone.com/Tg5ut

于 2012-06-12T20:04:05.290 に答える
3

を に変換してStringからchar[]、文字を置き換えることができます。char[]次に、背面を に変換しStringます。

String s = "asdf";
char[] arr = s.toCharArray();
arr[0] = 'b';
s = new String(arr);
于 2012-06-12T20:05:50.523 に答える
2

いいえ。ピースを連結するよりも簡単な方法はありません。

于 2012-06-12T20:03:06.147 に答える
1

とにかく、すべての文字列は基本的に単なる char[] であるため、それを取得して個々の文字をそのように操作することができます。

于 2012-06-12T20:09:06.077 に答える
1

StringBuilder Java Pageの代わりに StringBuilder を使用してみてください

于 2012-06-12T20:04:02.103 に答える
-1

どうですか:

String crap = "crap";
String replaced = crap.replace(crap.charAt(index), newchar);

しかし、これはその文字のすべてのインスタンスを置き換えます

于 2012-06-12T20:05:05.523 に答える
-1

メソッドを試すString.replace(Char oldChar, Char newChar)か、StringBuilder

于 2012-06-12T20:07:36.630 に答える
-2
String yourString = "abcdef"
String newString = yourString.replaceAll("c" , "x");
System.out.println("This is the replaced String: " + newString);

これは置き換えられた文字列です: abxdef

于 2012-06-12T20:04:50.623 に答える