Chao,我想修改一个变量,然后在修改函数后得到它的值,但为什么我会得到意想不到的结果。
String value="I miss the messenger";
public void func(String value)
{
value.replace("miss","kiss");
}
/// print it
Writeline(value);
谢谢
答案 0 :(得分:3)
Java字符串 immutable ,因此replace
会创建一个必须分配的新字符串,例如
value = value.replace("miss", "kiss");
答案 1 :(得分:3)
您传递的字符串未被修改(字符串在Java中是不可变的)。
因此replace(...)
方法将返回原始字符串的修改版本,您必须传递该字符串,否则它将丢失。
将其更改为:
public String func(String value)
{
return value.replace("miss","kiss");
}
String value="I miss the messenger";
value = func(value);
Writeline(value);
答案 2 :(得分:2)
你的函数应该返回一个字符串,你应该知道返回什么
public String func(String value)
{
return value.replace("miss","kiss");
}
String value="I miss the messenger";
/// print it
Writeline(func(value));