栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么一个字符+另一个字符=奇怪的数字

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么一个字符+另一个字符=奇怪的数字

+
char
是算术加法,不是字符串连接。您必须执行
"" + ca +cb
或之类的操作,或使用
String.valueOf
Character.toString
方法来确保操作符中的至少一个
+
String
用于字符串串联的运算符。

[JLS

15.18加法运算符](http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.18)

如果

+
运算符的任何一个操作数的类型为
String
,则该操作为字符串连接。

否则,运算

+
符的每个操作数的类型必须是可转换为原始数字类型的类型,否则会发生编译时错误。

至于为什么要得到195,这是因为使用ASCII,

'a' = 97
'b' = 98
97 + 98 = 195


这执行基本

int
char
强制转换。

 char ch = 'a'; int i = (int) ch;    System.out.println(i);   // prints "97" ch = (char) 99; System.out.println(ch);  // prints "c"

这忽略了字符编码方案的问题(初学者不应该担心…!)。


值得注意的是,Josh Bloch指出,不幸的

+
是,对于字符串连接和整数加法都被重载了(“对于字符串连接,重载+运算符可能是一个错误。”- Java
Puzzlers
,难题11:最后笑)。通过为字符串串联使用不同的标记,可以很容易地避免许多此类混淆。


也可以看看

  • 串联一个空字符串来进行字符串转换真的那么糟糕吗?


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号