问答详情
源自:2-11 Java常量的应用

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

将常量类型设置为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

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


提问者:wunianheng 2015-12-07 15:49

个回答

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

    char相加是编码相加

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

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

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

    男女是拼接 52906是运算

  • 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是回车的意思)