java - 为什么它给出数字作为输出而不是数组中的元素?
问题描述
char[] np={'a','s','d','f'};
System.out.println(np[1]+np[np.length-1]);
// this print statement is giving output:217
System.out.println(""+np[1]+np[np.length-1]);
// this print statement is giving output:af
我只想知道为什么第一个将数字作为输出?这是在java中。
解决方案
's' + 'f'
将根据编码将每个字符转换为其字节表示形式,并自动将其转换为一个int
值。这些基于扩大的原始转换规则。基本上,char
被视为更具体的类型,int
并且当加在一起时,两者中更一般的 ( int
) 将是返回的类型。
为了解决这个问题,您可以将其中一个变量转换为一种类型,以防止编译器将其解释为int
加法。一种方法是String
像上面那样在开头添加一个。另一种方法可能是在等式中修改np[1]
为。String.valueOf(np[1])
推荐阅读
- erlang - Elixir/Erlang: :ssl.start 在使用 {:reuseaddr, true} 在不同的 IP 上启动时返回 {:error, :already_listening}
- c# - 我们可以在 razor 页面中使用 addTagHelper 吗?
- r - 在ggplot中绘制百分比
- composer-php - 如何在 Mac Mojave 上安装 Laravel Valet?
- javascript - 获取目录的 HTML 多文件输入(Electon 应用程序)
- asp.net-core - GetObjectAsync() 不适用于 VS2019 版本 16.9.3 - 使用 AWSSDK.S3 版本 3.7.0.6 的 NET 5 应用程序
- ios - SwiftUI 中的 UITextField 导致“在视图更新期间修改状态,这将导致未定义的行为。”
- javascript - 如何对这些值进行异或?
- pygame - 不是键盘/鼠标的 Pygame 输入
- python - 如何从 micropython 中的字节数组/字节转换?