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

尝试在整数后添加字符然后打印结果时出现奇怪的结果

尝试在整数后添加字符然后打印结果时出现奇怪的结果

跃然一笑 2021-10-27 16:51:39
我正在尝试根据欧姆定律创建一个简单的计算器。所以这个想法是你可以填写2个变量,然后它会计算第三个变量。当我创建这个程序时,我发现了一个小问题,我不明白它是如何发生的,不幸的是我找不到答案。我试图打印一个显示完整计算的字符串。所以用户填写的 2 个变量和答案。在 Ohm 变量(本例中为“R”)之后,还应打印正确的符号。如下例所示,我可以在变量后添加符号的唯一方法是首先添加一个空字符串 ("")。否则unicode将被添加到变量中?!我做了一个简单的例子来说明我的问题:public class Main {    public static void main(String[] args) {        float R = 2.54f;        float U = 4.00f;        float I = R / U;        char ohm = '\u2126';        System.out.println(R + "" + ohm + " (R) / " + U + "V (U) = " + I + "A (I)");        System.out.println(R + ohm + " (R) / " + U + "V (U) = " + I + "A (I)");    }}结果在控制台:2.54Ω (R) / 4.0V (U) = 0.635A (I)8488.54 (R) / 4.0V (U) = 0.635A (I)如您所见,第二次打印没有显示欧姆符号,而是向变量“R”添加了一个值。希望我已经把我的问题说清楚了。
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

R + ohm执行 afloat和 a的数字加法char(这是一个整数类型)。因此,您会看到float结果而不是您期望的字符串连接。float您看到的结果是8486 + 2.54(因为8486是十六进制数的十进制值2126)。

在您的第一条println语句中,您通过将String("") 连接到 来避免这种情况float,结果是String. 然后将 Ohmchar连接到那个String

您也可以从空开始String以获得所需的输出:

System.out.println("" + R + ohm + " (R) / " + U + "V (U) = " + I + "A (I)");


查看完整回答
反对 回复 2021-10-27
  • 1 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信