常量类型不一样,分别为String和char的话,输出结果不一样,为什么呢?

来源:2-11 Java常量的应用

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

这是为什么呢,感觉好神奇,难道是编码问题?


写回答 关注

3回答

  • Caballarii
    2015-12-07 15:53:30
    已采纳

    char相加是编码相加

    你需要写成System.out.println(""+GENDER+GENDER2),进行一次强制转换就是你要的结果了

    wunian... 回复Caball...

    明白了!谢谢老师~已设为最佳答案

    2015-12-07 16:19:37

    共 3 条回复 >

  • Irays
    2015-12-07 15:57:05

    char本来就是int 类型储存的,+号在java有两种含义,1是运算 2字符串拼接

    男女是拼接 52906是运算

    Irays 回复qq_TY习...

    '男'+'女'==52906

    2015-12-09 11:54:16

    共 3 条回复 >

  • wunianheng
    2015-12-07 15:54:04

    而且你们看,要是将char类型的两个常量分别输出就没有问题了,如下:

    public static void main(String[] args) {

    final char GENDER = '男';

    final char GENDER2 = '女';

            System.out.println(GENDER);

            System.out.println(GENDER2);

    }

    输出结果是:“男\n女”(\n是回车的意思)

    Caball...

    因为单独输出时会转换为String类型输出,你可以看成System.out.println只能输出String类型,不是String类型就要转换成String类型

    2015-12-07 15:57:44

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165552 学习 · 17587 问题

查看课程

相似问题