有没有一种简单的方法来替换Java中字符串中任意位置的字符(并获取新的字符串)?

时间:2012-06-12 20:01:26

标签: java string

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

"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)

8 个答案:

答案 0 :(得分:5)

使用StringBuilder#replace()

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

http://ideone.com/Tg5ut

答案 1 :(得分:3)

您可以将String转换为char[],然后替换该字符。然后将char[]转换回String

String s = "asdf";
char[] arr = s.toCharArray();
arr[0] = 'b';
s = new String(arr);

答案 2 :(得分:2)

没有。没有简单的方法来连接各个部分。

答案 3 :(得分:1)

尝试使用StringBuilder而不是StringBuilder Java Page

答案 4 :(得分:1)

因为每个String基本上只是一个char [],你可以抓住它并以这种方式操纵各个字符。

答案 5 :(得分:-1)

怎么样:

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

但这会替换该角色的所有实例

答案 6 :(得分:-1)

尝试String.replace(Char oldChar, Char newChar)方法或使用StringBuilder

答案 7 :(得分:-2)

String yourString = "abcdef"
String newString = yourString.replaceAll("c" , "x");
System.out.println("This is the replaced String: " + newString);

这是被替换的字符串:abxdef