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

结果很奇怪

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

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

 

正在回答

2 回答

输出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);
 }
}


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

qq_XL_14 提问者

非常感谢!
2015-11-09 回复 有任何疑惑可以回复我~
#2

qq_XL_14 提问者

为什么用+就会转换为整型?
2015-11-09 回复 有任何疑惑可以回复我~

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

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


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

qq_XL_14 提问者

输出两个变量的值Java不是用+连接么?在c语言中能用逗号分开,我在这里试了一下不行,然后用+看能不能行,结果就出现211了
2015-11-09 回复 有任何疑惑可以回复我~
#2

Perona 回复 qq_XL_14 提问者

嗯,java没有占位符的概念。不能用逗号,只能用连接符+,但是输出char类型就成了加法运算。不用纠结了。知道就好了。
2015-11-09 回复 有任何疑惑可以回复我~
#3

舞有涵意 回复 qq_XL_14 提问者

在java中使用 + 连接两个字符中间必须使用其他变量或者使用双引号添加空格符等,不能直接相加,这样会自动转换为整形ASCII码的相加
2015-11-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

结果很奇怪

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