修改功能无法打印预期结果

时间:2011-08-19 11:50:28

标签: java

Chao,我想修改一个变量,然后在修改函数后得到它的值,但为什么我会得到意想不到的结果。

String value="I miss the messenger";
public void func(String value)
{
   value.replace("miss","kiss");
}
/// print it
Writeline(value);

谢谢

3 个答案:

答案 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));