gpt4 book ai didi

java - 为什么 StringBuffer 没有改变?

转载 作者:行者123 更新时间:2023-11-29 05:57:34 26 4
gpt4 key购买 nike

public class Test1{
public static void main(String[] args){
StringBuffer s=new StringBuffer("abcde");
reverseString(s);
System.out.println(s);
}
public static int reverseString(StringBuffer s){
StringBuffer s1=new StringBuffer("");
int length=s.length();
for(int i=length-1;i>=0;i--){
s1.append(s.charAt(i));

}
s=s1;
return 1;
}

我想更改 StringBuffer。在方法中,s="edcba",但我运行该类,结果是“abcde”。为什么?

最佳答案

在 JAVA 中,变量总是通过 val 传递,而你试图做的事情,变量需要通过 ref 传递。为了做你想做的事,引用不能改变,但对象的属性可以。

public static int reverseString(StringBuffer s){ 
StringBuffer s1=new StringBuffer("");
int length=s.length();
for(int i=length-1;i>=0;i--){
s1.append(s.charAt(i));

}
s.replace(0, length, s1.toString());
return 1;
}

关于java - 为什么 StringBuffer 没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485338/

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