Mr浮云
2016-02-23 23:30
public static void main(String[] args) {
final char SEX1='男';
final char SEX2='女';
System.out.println(SEX1+SEX2);
{ }是一对,相对应的。
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);
}
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。
直接给你说解决办法吧:
一:分开打印
System.out.println(SEX1);
System.out.println(SEX2);
二:添加一个""
System.out.println(SEX1+""+SEX2);
如果你想知道为什么,查查api文档的println方法
应该使用String来定义此常量
Java入门第一季(IDEA工具)
1169276 学习 · 18759 问题
相似问题