tostring方法输出错误

时间:2014-05-08 07:51:15

标签: eclipse string tostring

您好我正在编写一个测试程序来反转一个字符串。当我使用toString()方法将字符数组转换为字符串时,我得到错误的输出。当我尝试使用for循环手动打印数组而不将其转换为字符串时,答案是正确的。我写的代码如下所示:

import java.util.*;
public class stringManip {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    String str = "This is a string";
    System.out.println("String=" +str);
    //reverse(s);

    char[] c = str.toCharArray();
    int left = 0;
    int right = str.length() - 1;
    for (int i = 0; i < (str.length())/2; i++)
    {
        char temp = c[left];
        c[left++] = c[right];
        c[right--] = temp;
    }
    System.out.print("Reverse="+c.toString());


    }
}

我应该得到我输入的字符串的反向,而输出的结果是:

String=This is a string

Reverse=[C@45a1472d

使用toString()方法时有什么问题吗?任何帮助表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:2)

数组不会覆盖toString()方法。因此,您所看到的是默认Object.toString()实现的输出,其中包含对象的类型([C表示字符数组),后跟其hashCode。

要从char数组构造String,请使用

new String(c)