为什么这个例子不起作用?
public static String symbole(String sym)
{
sym = sym.replace("&" , "§");
sym = sym.replace("[<3]" , "\u2764");
return sym;
}
String test = "This Dont work... why [<3]";
symbole(test);
我该如何替换这个...... 任何建议? 请帮助和抱歉我完美的英语
答案 0 :(得分:2)
以下声明:
unsigned char*
可以使用“心脏”字符替换ptr
。
我想你的问题是你认为sym.replace("[<3]", "\u2764");
在将它传递给方法时会被修改。这不起作用,因为[<3]
是不可变的;调用test
实际上会返回新的 String
实例。您无法将其分配回replace
并期望String
更改,因为Java是按值传递的,并且您无法重置引用。但是,由于您已经返回修改后的字符串,因此您只需将返回值分配回sym
:
test
如果需要,您也可以将其分配给新变量:
test
答案 1 :(得分:2)
您的问题很可能是因为您希望您的函数改变您传递给方法的原始String。
字符串在java中是不可变的,此外,您无法修改从该方法传递给方法的原始引用。
要获得您最可能期望的结果,请将方法中的返回值存储在新引用中,或将测试引用指向返回的String。
所以你可以尝试:
test = symbole(test);
或
String replacedTest = symbole(test):