2014-10-31 187 views
1

我正在使用toCharArray方法将字符串转换为字符型数组,但每次我尝试打印数组时,都会打印数字而不是存储在字符串中的字符。当我打印字符串时,字符被打印得很好。在JAVA中将字符串转换为字符数组

char[] nArray = capitalizedSentence.toCharArray(); 

     for (int i = 0; i < nArray.length; i++) 
     { 
      System.out.println(nArray[i] + '\n'); 
     } 

例: 如果我capitalizedSentence字符串的值“萨阿德”,当我将其转换为字符数组,并打印,将打印以下内容:

93 
75 
75 
78 

有人可以帮我以便它打印存储在大写字母字符串中的单个字符?

+0

字符类toString()实现可能会打印数值。你有一个char数组。 – sturcotte06 2014-10-31 02:27:54

+0

我该如何解决? – user3526197 2014-10-31 02:28:29

+0

我希望它分开打印字符串中的单个字符。 – user3526197 2014-10-31 02:29:39

回答

3

nArray[i]char; '\n'常数也是如此。字符是一个无符号的整型,所以字符以与所有整数相同的方式加在一起 ​​- 数字。当一个加法发生时,你最终得到一个int,而不是一个char,因此调用println产生一个数字结果。

删除+ '\n'将解决此问题。你会从println得到一个换行符,所以所有的字符都会出现在一个新行中。

Demo.

+0

您的解释要好得多。 – 2014-10-31 02:32:08

1

更换'\n'"\n"

为什么?由于编译器看到您将2个字符一起添加到编译器charint原始数据类型被认为是可以互换的,所以+实际上将2个int值加在一起。使用双引号将告诉编译器您正在向字符添加字符串。

1

我认为这会帮助你。用于每个循环

char[] nArray = capitalizedSentence.toCharArray(); 
for(Character c: nArray){ 
    System.out.println(c); 
} 
相关问题