为了账号安全,请及时绑定邮箱和手机立即绑定

哪里错了?

 public static void main(String[] args) {

final char SEX1='男';

    final char SEX2='女';

    System.out.println(SEX1+SEX2);


正在回答

4 回答

{ }是一对,相对应的。

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);

}


0 回复 有任何疑惑可以回复我~
#1

Mr浮云 提问者

非常感谢!
2016-03-06 回复 有任何疑惑可以回复我~

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。


0 回复 有任何疑惑可以回复我~
#1

一条小咸鱼

java一共就8种基本类型好不
2016-02-24 回复 有任何疑惑可以回复我~

直接给你说解决办法吧:

一:分开打印

System.out.println(SEX1);

System.out.println(SEX2);

二:添加一个""

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

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

0 回复 有任何疑惑可以回复我~

应该使用String来定义此常量

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪里错了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信