0

我知道没有简单的方法可以做到这一点。假设我有以下字符串-

"abcdefgh"

我想通过用'x'替换第三个字符'c'来获得一个字符串。

很长的路要走——

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为 achar[]然后替换字符。然后将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

尝试使用 StringBuilder 而不是StringBuilder Java 页面

于 2012-06-12T20:04:02.103 回答
1

由于每个 String 基本上都只是一个 char[] ,因此您可以抓住它并以这种方式操作各个字符。

于 2012-06-12T20:09:06.077 回答
-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 回答