我有一个字符串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%"
该怎么办?我希望它尽可能通用。
有没有办法做到这一点?
答案 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
的内容。