我有代码
String txt = "<p style=\"margin-top: 0\">";
txt.replace("style=\"margin-top: 0\"","class=\"style_" + i + "\"");
在for循环中(这就是我的目的),但是当我运行它时,没有任何东西被替换。我使用这个错了吗?
答案 0 :(得分:8)
它应该是这样的:
String txt = "<p style=\"margin-top: 0\">";
txt = txt.replace("style=\"margin-top: 0\"","class=\"style_" + i + "\"");
“String”是一个不可变类型,这意味着String上的方法不会更改String本身。更多信息 - http://en.wikipedia.org/wiki/Immutable_object。
答案 1 :(得分:2)
replace
方法不会修改调用它的字符串,而是返回对修改后的字符串的引用。
如果您希望txt
引用修改过的字符串,您可以这样做:
txt = txt.replace("style=\"margin-top: 0\"","class=\"style_" + i + "\"");
如果您希望txt
继续引用原始字符串,并希望使用其他引用来引用已更改的字符串,则可以执行以下操作:
String new_txt = txt.replace("style=\"margin-top: 0\"","class=\"style_" + i + "\"");
答案 2 :(得分:1)
String是一个不可变类,这意味着String对象的实例方法不会改变字符串本身。您必须收集这些实例方法的返回值。