反转字符串java

时间:2015-07-18 13:50:49

标签: java

处理一个问题以反转一个字符串,当我尝试使用以下方法来反转一个字符串时,我得到了[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();
}

3 个答案:

答案 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();
    }