关于java中输出字符数组的有关问题
关于java中输出字符数组的问题
public class Ceshi{
public static void main(String args[]){
char a[]={'A','b','c','d','e'};
char b='c';
System.out.println(a[0]+a[1]);
System.out.println(b);
}
}
这段代码中,第一行输出的为什么是字符所代表的ASCII值,而不是字符Ab。
public class Ceshi{
public static void main(String args[]){
char a[]={'A','b','c','d','e'};
char b='c';
System.out.println(" "+a[0]+a[1]);//在输出a[0],a[1]前加了个空格
System.out.println(b);
}
}
而在第二段代码中,第一行输出的就是Ab,不是第一段代码中的ASCII值。
求大神解答。
------解决思路----------------------
char是一种数值类型,所以第一段代码返回是数字。
而第二段代码有一个""+的操作把相当于把char转换为了String,所以放回的不是数字了。
------解决思路----------------------
因为在计算加减法的时候,如果有高类型的数据,先把低类型的转换为高类型,就如同int +double 就会变成double 类型,char 属于低类型,需要先转换为string,然后计算,所以最后就是string,
在第一种情况下,两个char 加法就会先转换为Int,然后就是AScii码了
public class Ceshi{
public static void main(String args[]){
char a[]={'A','b','c','d','e'};
char b='c';
System.out.println(a[0]+a[1]);
System.out.println(b);
}
}
这段代码中,第一行输出的为什么是字符所代表的ASCII值,而不是字符Ab。
public class Ceshi{
public static void main(String args[]){
char a[]={'A','b','c','d','e'};
char b='c';
System.out.println(" "+a[0]+a[1]);//在输出a[0],a[1]前加了个空格
System.out.println(b);
}
}
而在第二段代码中,第一行输出的就是Ab,不是第一段代码中的ASCII值。
求大神解答。
------解决思路----------------------
char是一种数值类型,所以第一段代码返回是数字。
而第二段代码有一个""+的操作把相当于把char转换为了String,所以放回的不是数字了。
------解决思路----------------------
因为在计算加减法的时候,如果有高类型的数据,先把低类型的转换为高类型,就如同int +double 就会变成double 类型,char 属于低类型,需要先转换为string,然后计算,所以最后就是string,
在第一种情况下,两个char 加法就会先转换为Int,然后就是AScii码了