wunianheng
2015-12-07 15:49
将常量类型设置为String的话:
public class HelloWorld {
public static void main(String[] args) {
final String GENDER = "男";
final String GENDER2 = "女";
System.out.println(GENDER+GENDER2);
}
}
输出结果很正常,是:“男女”;
但是如果类型是char:
public class HelloWorld {
public static void main(String[] args) {
final char GENDER = '男';
final char GENDER2 = '女';
System.out.println(GENDER+GENDER2);
}
}
输出结果是很魔性的:52906
这是为什么呢,感觉好神奇,难道是编码问题?
char相加是编码相加
你需要写成System.out.println(""+GENDER+GENDER2),进行一次强制转换就是你要的结果了
char本来就是int 类型储存的,+号在java有两种含义,1是运算 2字符串拼接
男女是拼接 52906是运算
而且你们看,要是将char类型的两个常量分别输出就没有问题了,如下:
public static void main(String[] args) {
final char GENDER = '男';
final char GENDER2 = '女';
System.out.println(GENDER);
System.out.println(GENDER2);
}
输出结果是:“男\n女”(\n是回车的意思)
Java入门第一季(IDEA工具)升级版
1165174 学习 · 17581 问题
相似问题