处理一个问题以反转一个字符串,当我尝试使用以下方法来反转一个字符串时,我得到了[C @ 659e0bfd。有人知道这段代码有什么问题吗?
public static String reverseString(String string) {
if ((string == null) || (string.length() <= 1)){
return string;
}
char[] charArray = string.toCharArray();
char[] newString = new char[charArray.length];
for (int i = 0; i < charArray.length; i++ ){
newString[i] = charArray[(charArray.length -1)-i];
}
return newString.toString();
}
答案 0 :(得分:2)
您将返回array.toString()
。
如果你想知道它给出的原因
C@659e0bfd
read this question。
要解决此问题,您可以使用
return new String(newString);//create string from adding all chars together
public String(char[] chars)
是String类的重载构造函数,它创建一个带字符数组的新String
答案 1 :(得分:1)
未覆盖char[]
的{{1}}方法。这意味着,它将返回toString()
方法提供的值。
您应该使用Object.toString()
答案 2 :(得分:0)
首先,您的所有代码(第一个if
子句除外)只能替换为一个字符串:
return new StringBuilder(string).reverse().toString();
其次,您不需要在if
子句中使用嵌套括号。所以,方法如下:
public static String reverseString(String string) {
if (string == null || string.length() <= 1){
return string;
}
return new StringBuilder(string).reverse().toString();
}