字符串替换Java函数 我试图用一个函数替换多个类中的多个字符串

字符串替换Java函数 我试图用一个函数替换多个类中的多个字符串,java,string,class,replace,bukkit,Java,String,Class,Replace,Bukkit,为什么这个例子不起作用 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); 公共静态字符串符号(字符串符号) { sym=sym.替换(“&”和“§”)

为什么这个例子不起作用

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);
公共静态字符串符号(字符串符号)
{  
sym=sym.替换(“&”和“§”);

sym=sym.replace(“[以下语句):

sym.replace("[<3]", "\u2764");
如果需要,还可以将其分配给新变量:

String modified = symbole(test);

您的问题很可能是因为您希望您的函数改变传递给方法的原始字符串

字符串在java中是不可变的,此外,您不能修改从该方法传递给该方法的原始引用

要获得您最可能期望的结果,请将方法返回的值存储在新引用中,或者将测试引用点指向返回的字符串

因此,您可以尝试:

test = symbole(test);


对我来说很好。你看到了什么?你说“它不起作用”是什么意思?"。它工作得很好。你面临什么问题?你能提供一些关于字符串和预期替换的示例吗?你的输出是什么?你看到问号了吗?可能是编码问题。你是在IDE中运行的吗?还是在shell中运行的?操作系统?java版本?你是如何测试它不工作的?有没有可能你忘记使用
sym返回的值bole(测试)
和正在打印
test
test = symbole(test);
String replacedTest = symbole(test):