下面是代码:两个打印出来不一样
public class TestString03
{
public static void main(String[] args)
{
String str = "Hello World";
char[] c = str.toCharArray();
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + ",");
}
}   //这个打印出来的是一组数字类型的数组public class TestString03
{
public static void main(String[] args)
{
String str = "Hello World";
char[] c = str.toCharArray();
         for (int i : c) {
System.out.print(i + ",");
}

}   //这个打印出来是正常的字符数组,

解决方案 »

  1.   

    public class TestString03
    {
    public static void main(String[] args)
    {
    String str = "Hello World";
    char[] c = str.toCharArray();
    for (int i : c) {
    System.out.print(i + ",");
    } }
    这个输出来的是数字,因为你在for循环的条件里用的是int来接收,把他改为char类型就可以了
      

  2.   

    同意,楼主搞反了。不一样的原因是,打印时的类型不一样,一个是char,一个是int,当时结果也不一样啦。
    把int型改为char试试看,看还有没有差别?这根for还是foreach没有关系。
      

  3.   

    for (int i : c)  ===>for (char i : c)
      

  4.   

    不一样的原因是,打印时的类型不一样,一个是char,一个是int,当时结果也不一样啦。
    把int型改为char试试看,看还有没有差别?这根for还是foreach没有关系。
      

  5.   

    char类型表现有两种,字符和整型。而你用for -- each时,分别用int和char 来输出,当然是不一样了
      

  6.   

    用int取英文字符得到的值为对应的ASCII码。
      

  7.   


    顶一下,for 与 foreach 一样的。for (int i : c)   默认转化成了 int for (char i : c)  就是和for 一样的了
     
      

  8.   

    同意以上观点
    foreach没用过,刚想学习一下,
      

  9.   

    for (char i : c) c里面装的是char,我就这么理解的,呵呵
      

  10.   

    char向int转换会变为相应的ASCII码第二个是:
    String str = "Hello World";
    char[] c = str.toCharArray();
    for (char i : c) {
    System.out.print(i + ",");
      

  11.   

    估计是想都没想就顺势打成int i了用得太多
      

  12.   

    tring str = "Hello World";
    char[] c = str.toCharArray();
    for (int i : c) {
    System.out.print(i + ",");
    } int c已经指定了是int
      

  13.   


    String str = "Hello World";
    char[] c = str.toCharArray();
    for (char i : c) {
    System.out.print(i + ",");

    你看我的代码 再对照你自己的就可以找出问题了