2014-09-04 49 views
-2

我编写了一个样本Java程序:toCharArray()方法显示错误

String str="JAVA is awesome"; 
char[] ch=str.toCharArray(); 
System.out.println("The value of ch is : " + ch); 

是表示用一些随机的ASCII值一个意想不到的结果......这是什么问题?

+0

这可能是打印'ch'对象的地址。你期望它打印什么? – 2014-09-04 15:06:42

+0

你看到的东西看起来像'[C @ 48a2e6'。这是'ch'(它是'[C'或字符数组],后面跟着@符号和数组哈希码的十六进制字符串表示的组合。 – JonK 2014-09-04 15:08:53

+0

仅供参考:在本例中,您不需要将ch初始化为新的char [n],因此您也不需要n。 char [] ch = str.toCharArray();很好:) – ne1410s 2014-09-04 15:09:41

回答

1

你真的像说的javadoc String#toCharArray()不需要这一步char ch[]=new char[n];

- 返回一个新分配的字符数组,其长度为该字符串的长度及其内容被初始化为包含由该字符串表示的字符序列。

而在此行System.out.println("The value of ch is : " + ch);

只要返回一个由其中的对象是一个实例,该符号字符'@”的类的名称的字符串,并且散列码的无符号十六进制表示法的对象。下面

所以这几行应该做你想达到什么

String str="JAVA is awesome"; 
char[] ch = str.toCharArray(); 
System.out.println(java.util.Arrays.toString(ch)); 

Arrays.toString(char[] ch) - 返回指定数组内容的字符串表示。字符串表示由数组元素的列表组成,方括号(“[]”)。相邻元素由字符“,”分隔(逗号后跟空格)。

0

此行

System.out.println("The value of ch is : " + ch); 

会打印出

The value of ch is : //And the hash code of your array, which is just an object in Java 

如果你想有意义的数据,使用Arrays.toString()重载的方法...

System.out.println("The value of ch is : " + Arrays.toString(ch)); 

在的Javadoc看看对于Array.toString()方法来看看它在什么时候可能会有用。

+0

是啊..但是当我使用Arrays.string错误来: 线程“主”的异常java.lang.Error:未解决的编译问题: \t String类型的方法toString()不适用于参数(char [ ]) \t at spidy.test.main(test.java:15) – Spider 2014-09-04 15:13:44

+0

我希望你的意思是'Arrays.toString(ch)'..什么错误来了?编译或运行时?提供一些信息... – Kon 2014-09-04 15:14:28

0

此代码:

System.out.println("The value of ch is : " + ch); 

等效于此

System.out.println("The value of ch is : " + ch.toString()); 

作为ch是它继承Object.toString()toString()方法的阵列对象。这返回一个由对象为实例类的名称,符号字符“@”和对象的哈希代码的无符号十六进制表示组成的字符串

尝试使用下列内容之一的输出,你需要:

System.out.println("The value of ch is : " + new String(ch)); //prints ch array as String 
System.out.println("The value of ch is : " + String.valueOf(ch)); //prints ch array as String 
System.out.println("The value of ch is : " + Arrays.toString(ch)); //prints every letter separately 
+0

谢谢..我知道了..非常感谢你 – Spider 2014-09-04 15:18:55

+0

@RushabhWadkar很高兴我能提供帮助。如果你发现答案有帮助,它解决了你的问题,你可以随时接受它。 – 2014-09-04 15:21:03