为什么 println(measure + '"'); 和 println(measure + '\"');添加到度量中,同时使用单独的语句打印正确?
Why do println(measure + '"'); and println(measure + '\"'); add to measure, while using seperate statements prints correctly?
为了在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
的值中?谢谢!
这是因为您正在打印表达式 measure + '"'
的结果。目前,您正在执行 double
和 char
之间的加法运算。如果您改为使用 "
而不是 '
,它将起作用。
像这样:System.out.println(measure + "\"");
另一种选择是先将measure
转换为字符串。这很少是最好的选择,但这里的要点是您需要知道操作数的类型以及操作的结果类型。 double
和 char
相加会得到 double
。 double
(或 int
或 char
等)和 String
之间的加法将导致 String
.
撇号用于声明 char
而不是 String
请记住这一点。单引号内的字符不能超过一个。
就这样measure + "\""
为了在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
的值中?谢谢!
这是因为您正在打印表达式 measure + '"'
的结果。目前,您正在执行 double
和 char
之间的加法运算。如果您改为使用 "
而不是 '
,它将起作用。
像这样:System.out.println(measure + "\"");
另一种选择是先将measure
转换为字符串。这很少是最好的选择,但这里的要点是您需要知道操作数的类型以及操作的结果类型。 double
和 char
相加会得到 double
。 double
(或 int
或 char
等)和 String
之间的加法将导致 String
.
撇号用于声明 char
而不是 String
请记住这一点。单引号内的字符不能超过一个。
就这样measure + "\""