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

哪里错了?

 public static void main(String[] args) {

final char SEX1='男';

    final char SEX2='女';

    System.out.println(SEX1+SEX2);


提问者:Mr浮云 2016-02-23 23:30

个回答

  • binginto
    2016-02-23 23:49:45
    已采纳

    { }是一对,相对应的。

    char是字符型数据,不可以直接相加。若强要相加,由于int是占两个字节,char占一个字节,执行加法过程,结果会变成数字,这是自动转化。可以通过强制转换,将char先变成string,再相加。

    可改为

     public static void main(String[] args) {

        char SEX1='男';

         char SEX2='女';

         String sex_man = (String)SEX1;

         String sex_woman = (String)SEX2;

        System.out.println(sex_man+sex_woman);

    }


  • 太極生兩儀
    2016-02-23 23:50:49

    public class HelloWorld {

    public static void main(String[] args) {

           final char SEX1 = '男';

           final char SEX2 = '女';

           System.out.println(Integer.valueOf(SEX1));//Integer.valueOf()的意思是将char类型转化成int类型

           System.out.println(Integer.valueOf(SEX2));

           System.out.println(SEX1+SEX2);

    }

    }

    -------------------------------

    可以试着运行下上面的代码

    首先他们都是基础类型,如果它们之间相加,其中内存小(精度低)的类型会自动转化为内存大的类型(精度高)

    “向上兼容”--即:不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是

    (unsigned)char,(unsigned)short->int->unsigned->long->unsigned long->float->double->longdouble。


  • 一条小咸鱼
    2016-02-23 23:44:05

    直接给你说解决办法吧:

    一:分开打印

    System.out.println(SEX1);

    System.out.println(SEX2);

    二:添加一个""

    System.out.println(SEX1+""+SEX2);

    如果你想知道为什么,查查api文档的println方法

  • qq_前男友_1
    2016-02-23 23:41:35

    应该使用String来定义此常量