我有以下代码
public static void main(String[] args) {
String word = "Super";
reverseString(word);
System.out.println(word);
}
public static String reverseString(String word) {
String helper = "";
int i = word.length() - 1;
while (i >= 0) {
helper += word.charAt(i);
i--;
}
return helper;
我不明白为什么当我打印"字"变量它仍然打印"超级"即使我在reverseString方法中更改了它。我知道字符串是通过引用传递的,而不是像原始值那样的复制。
如果我做word = reverseString(word)
它会打印出与我期望相反的内容," repuS"
谢谢
答案 0 :(得分:1)
您没有更改reverseString
中的字符串,您正在创建一个新字符串并返回新字符串(您称之为helper
)。
关于Java中字符串的第二个注意事项是它们是不可变的 - 所有字符串方法都返回一个新字符串,而不是修改你正在调用方法的字符串。