我正在尝试根据欧姆定律创建一个简单的计算器。 因此,想法是您可以填写2个变量,然后它将计算第三个变量。
在创建该程序时,我发现了一个小问题,但我不了解它是如何发生的,不幸的是我找不到答案。
我试图打印一个显示完整计算的字符串。因此,用户填写了2个变量并给出了答案。在欧姆变量(在本例中为“ R”)之后,也应打印正确的符号。
如下面的示例所示,在变量之后添加符号的唯一方法是首先添加一个空string(“”)。否则,是否将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”添加了一个值。希望我已经清楚地阐明了我的问题。
谢谢。
答案 0 :(得分:4)
R + ohm
对float
和char
(整数类型)执行数字加法运算。因此,您看到的是float
结果,而不是您期望的String串联。您看到的float
结果是8486 + 2.54
(因为8486
是十六进制数2126
的十进制值)。
在您的第一个println
语句中,您可以通过将String
与float
串联来产生String
来避免这种情况。然后将欧姆char
连接到该String
。
您也可以从空的String
开始以获取所需的输出:
System.out.println("" + R + ohm + " (R) / " + U + "V (U) = " + I + "A (I)");