gpt4 book ai didi

java - a = a.trim() 和 a.trim() 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:01 25 4
gpt4 key购买 nike

我遇到了一些困惑。

知道 String 对象是不可变的。这意味着如果我从 String 类调用方法,例如 replace(),则 String 的原始内容不会改变。相反,一个新的 String 被返回基于原来的。但是,可以为相同 变量分配新值。

基于这个理论,我总是编写 a = a.trim(),其中 a 是一个 String一切都很好,直到我的老师告诉我也可以使用简单的a.trim()。这打乱了我的理论。

我与老师的理论一起检验了我的理论。我使用了以下代码:

String a = "    example   ";
System.out.println(a);
a.trim(); //my teacher's code.
System.out.println(a);
a = " example ";
a = a.trim(); //my code.
System.out.println(a);

我得到了以下输出:

    example   
example
example

当我向老师指出时,她说,

it's because I'm using a newer version of Java (jdk1.7) and a.trim() works in the previous versions of Java.

请告诉我谁有正确的理论,因为我完全不知道!

最佳答案

字符串在java中是不可变的。 trim() 返回一个新字符串,因此您必须通过分配它来取回它。

    String a = "    example   ";
System.out.println(a);
a.trim(); // String trimmed.
System.out.println(a);// still old string as it is declared.
a = " example ";
a = a.trim(); //got the returned string, now a is new String returned ny trim()
System.out.println(a);// new string

编辑:

she said that it's because I'm using a newer version of java (jdk1.7) and a.trim() works in the previous versions of java.

请找一位新的java老师。这完全是没有证据的虚假陈述。

关于java - a = a.trim() 和 a.trim() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20917616/

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