结果很奇怪

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

qq_XL_14

2015-11-09 18:31

public class HelloWorld{
    public static void main(String[] args) {
  final char a='f';
     final char b='m';
  System.out.println(a+b);
 }
}

这个运行结果为什么是211??

 

写回答 关注

2回答

  • Perona
    2015-11-09 18:37:22
    已采纳

    输出char型如果中间直接是+,char型数据会被转换成int型数据。建议中间加个换行,或者分成2行输出。

    如:

    public class HelloWorld{
        public static void main(String[] args) {
          final char a='f';
          final char b='m';
          System.out.println(a+"\n"+b);
      }
    }

    或者

    public class HelloWorld{
        public static void main(String[] args) {
          final char a='f';
          final char b='m';
          System.out.println(a);
          System.out.println(b);
     }
    }


    qq_XL_...

    为什么用+就会转换为整型?

    2015-11-09 18:48:17

    共 2 条回复 >

  • Perona
    2015-11-09 19:55:54

    它语言设计本来就是这样,字符是不能相加的,而字符和整形是可以转换的,字符的取值范围是0-65535,如果你把两个字符相加,那它会先转换为整形,再相加。

    至于怎么来转换,每个字符都对应一个ASCII值,也就是0-65535范围内的数。


    舞有涵意 回复qq_XL_...

    在java中使用 + 连接两个字符中间必须使用其他变量或者使用双引号添加空格符等,不能直接相加,这样会自动转换为整形ASCII码的相加

    2015-11-11 19:54:36

    共 3 条回复 >

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

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

1165172 学习 · 17581 问题

查看课程

相似问题