用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
的值?谢谢!
答案 0 :(得分:1)
这是因为您正在打印表达式measure + '"'
的结果。目前,您正在double
和char
之间执行添加。如果您改为使用"
代替'
,那么它将起作用。
像这样:System.out.println(measure + "\"");
另一个选择是首先将measure
转换为字符串。这很少是最好的选择,但这里的全部要点是你需要知道操作数的类型以及操作的结果类型。 double
和char
之间的加法会产生double
。 double
(或int
或char
等)与String
之间的加法会产生String
。
答案 1 :(得分:0)
撇号用来声明char
而非String
记住这一点。单引号中不能有多个字符。
只需measure + "\""