在Java中更改字符串

bah*_*r_p 6 java string

我想将一个字符串发送到方法并在那里更改字符串.该方法应返回void.例:

String s = "Hello";
ChangeString(s);

String res = s;
//res = "HelloWorld"
-------------------------------------------

private void ChageString(String s){
s = s + "World";
}
Run Code Online (Sandbox Code Playgroud)

我怎么能用Java做呢?可以在不添加其他类的情况下完成吗?

谢谢!PB

Mar*_*ers 12

您的方法无法使用当前界面,原因有两个:

  • 字符串是不可变的.创建字符串后,您无法在以后更改该字符串对象.
  • Java使用pass-by-value,而不是pass-by-reference.在方法中指定新值时s,它仅修改本地s而不是s调用代码中的原始值.

要使方法有效,您需要更改界面.最简单的更改是返回一个新字符串:

private String changeString(String s){
    return s + "World";
}
Run Code Online (Sandbox Code Playgroud)

然后像这样称呼它:

String s = "Hello";
String res = changeString(s);
Run Code Online (Sandbox Code Playgroud)

看到它在线工作:ideone

  • Java不是按值传递的。请删除irrelavent共振。 (3认同)