为什么println(measure +'“');和println(measure +'\”');添加测量,同时使用单独的语句正确打印?

时间:2018-06-18 22:15:57

标签: java double-quotes apostrophe

用Java测试自己,我编写了一个程序,我需要显示double[] measurements的内容,其中包含:{8.0,7.7474,7.4949,7.7474,8.0,7.7474,7.4949,7.7474,8.0}。一个简单的增强for循环和println()似乎工作正常,但

for(double measure: measurements)
{
   System.out.println(measure + '"');
}

打印出42,41.7474,41.4949等。比measure的值多出34个。将代码更改为

for(double measure: measurements)
{
    System.out.println(measure + '\"');
}

打印出18,17.7474,17.4949等。比正确的值多10个。只有在println语句分为两行时才能正确打印:

System.out.print(measure);
System.out.println("\"");

为什么前两个例子会增加measure的值?我对编程很新,但在我看来,他们都会工作,因为Java使用撇号和引号来声明一个字符串。为什么将它分成两个语句正确工作,同时将两个语句加入measure的值?谢谢!

2 个答案:

答案 0 :(得分:1)

这是因为您正在打印表达式measure + '"'的结果。目前,您正在doublechar之间执行添加。如果您改为使用"代替',那么它将起作用。

像这样:System.out.println(measure + "\"");

另一个选择是首先将measure转换为字符串。这很少是最好的选择,但这里的全部要点是你需要知道操作数的类型以及操作的结果类型。 doublechar之间的加法会产生doubledouble(或intchar等)与String之间的加法会产生String

答案 1 :(得分:0)

撇号用来声明char而非String记住这一点。单引号中不能有多个字符。

只需measure + "\""

相关问题