2011-08-19 50 views
1

晁,我想修改一个变量,然后在修改函数后得到它的值,但为什么我会得到意想不到的结果。修改功能无法打印预期结果

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

谢谢

回答

3

Java中的字符串是immutable,因此replace创建你把这个字符串没有被修改一个新的字符串,它必须被分配,例如,

value = value.replace("miss", "kiss"); 
+0

您typoed和换货 “不可改变的”! –

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

你的函数返回一个字符串,你应该printoiut什么`返回

public String func(String value) 
{ 
    return value.replace("miss","kiss"); 
} 

String value="I miss the messenger"; 

/// print it 
Writeline(func(value));