gpt4 book ai didi

java - 带有java和字符串变量的指针

转载 作者:行者123 更新时间:2023-12-02 07:47:09 26 4
gpt4 key购买 nike

我给了一个字符串变量一个值(作为变量)。

问题是当我更改此值时,它不会更改其他变量:

代码:

 String test = "hello";
String myname = test;
test = "how are you ?";

myname 的输出是“hello”

我希望输出是“你好吗?”测试的新值;如何在不再次给出值的情况下做到这一点,例如:

myname = test;

我不想再次给出该值,因为我的代码中有很多变量将 test 变量作为值,我想做最短的方法。

最佳答案

首先,您将值“hello”(在内存中的某个位置)分配给test:

test --------------> "hello"

然后,您将 myname 设置为内存中的相同位置。

test --------------> "hello"
/
myname ----------/

然后,您将分配值“你好吗?”在内存中的位置进行测试:

                   -> "hello"
/
myname ----------/

test --------------> "how are you?"

一切都与指针有关。

评论后编辑

我不知道你的代码的其余部分是什么样的,但是如果你希望能够更新单个字符串并同时更新对该字符串的其余引用,那么你需要使用StringBuilder(如果需要同步,则使用 StringBuffer):

    StringBuilder test = new StringBuilder("hello");
StringBuilder myname = test;
StringBuilder foo = test;
StringBuilder bar = test;
test.replace(0, test.length(), "how are you?");
Assert.assertEquals("how are you?", test.toString());
Assert.assertEquals("how are you?", myname.toString());
Assert.assertEquals("how are you?", foo.toString());
Assert.assertEquals("how are you?", bar.toString());

从那里得到的?

关于java - 带有java和字符串变量的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19695258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com