猿问

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

我正在尝试根据欧姆定律创建一个简单的计算器。所以这个想法是你可以填写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”添加了一个值。希望我已经把我的问题说清楚了。


跃然一笑
浏览 132回答 1
1回答

慕姐4208626

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)");
随时随地看视频慕课网APP

相关分类

Java
我要回答