替换为字符串

时间:2013-05-29 13:20:57

标签: java string

我有一个字符串s,由两个字符串s1和s2 s = s1+s2组成。

我希望能够在另一个函数中修改s1,然后使用修改后的版本s重构s1。我想更改s1,以便s2作为参数。例如,s1 = "1+"s2="2",我希望成为"incr(" + s2 + ")"

我可以使用s1 = "incr(%s2%)"然后使用s1.replace("%s2%",s2)来实现这一点,但如果s1已包含"%s2%"该怎么办?我希望它尽可能通用。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

String是一个不可变类,意味着你无法修改它。所有String方法都会创建 new String,而不是修改String

然而,您可以使用toCharArray(或StringBuilder以获得更多灵活性),这是可变的。

答案 1 :(得分:0)

如果您想在Java中使用可编辑的Strings,请使用StringBuilder类(http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/StringBuilder.html)。这有多种方法可用于处理和替换子字符串。

答案 2 :(得分:0)

如果需要同步,请使用StringBuffer,否则使用StringBuilder来减少同步开销。两者都是mutable类。他们有很多方法来修改String的内容。