在Java中通过引用传递字符串?

我习惯在中执行以下操作C

void main() {

String zText = "";

fillString(zText);

printf(zText);

}

void fillString(String zText) {

zText += "foo";

}

输出为:

foo

但是,在Java中,这似乎不起作用。我认为是因为该String对象是复制的,而不是通过referenced传递的。我以为字符串是对象,总是通过引用传递。

这里发生了什么?

回答:

你有三种选择:

  1. 使用StringBuilder:

StringBuilder zText = new StringBuilder ();

void fillString(StringBuilder zText) { zText.append ("foo"); }

  1. 创建一个容器类,并将容器的实例传递给你的方法:

public class Container { public String data; }

void fillString(Container c) { c.data += "foo"; }

  1. 创建一个数组:

new String[] zText = new String[1];

zText[0] = "";

void fillString(String[] zText) { zText[0] += "foo"; }

从性能的角度来看,StringBuilder通常是最佳选择。

以上是 在Java中通过引用传递字符串? 的全部内容, 来源链接: utcz.com/qa/425636.html

回到顶部