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

为什么一个字符+另一个字符=奇怪的数字,第1张

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

+
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:最后笑)。通过为字符串串联使用不同的标记,可以很容易地避免许多此类混淆。


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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5140903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存