字符串代码说明[重复]

问题描述 投票:-3回答:2

这个问题在这里已有答案:

好的,所以我试图能够向朋友解释下面问题的答案,但我不知道如何。我知道过程方法不会改变s并且答案是ABCD(s没有改变),但我不知道为什么。是因为字符串是不可变的吗?我的朋友认为应该是CBA。有帮助吗?

public void process(String s) 
{
    s = s.substring(2, 3) + s.substring(1, 2) + s.substring(0, 1);
}

执行以下语句(在同一类中的方法中)打印的内容是什么?

String s = “ABCD”;
process(s);
System.out.println(s);
java string
2个回答
0
投票

您正在为变量s分配新值。这不会改变传递给s方法的process()的值,因此程序打印

ABCD

0
投票

发生这种情况,因为你是通过它的价值来调用它,并且它不会改变

你可以重写你的方法,例如:

public static String process(String s) 
{
    return s.substring(2, 3) + s.substring(1, 2) + s.substring(0, 1);
}

然后你可以像这样使用它:

String s = "ABCD";
s = process(s);
System.out.println(s);
© www.soinside.com 2019 - 2024. All rights reserved.