0

我正在尝试使用 printf 来显示如下内容:

Temperature: # # # # # # # # # # # #

但是当我运行我的程序时,我得到了这个:

Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:Temperature:
  69.0      67.0      66.0      64.0      66.0      69.0      67.0      67.0      70.0      69.0      69.0      70.0

这是我的代码片段:

System.out.printf("Temperature:", "%10.1f", temperature);

任何帮助将不胜感激。

4

4 回答 4

1

它应该是这样的

System.out.printf("Temperature %10.1f\n", temperature)
于 2013-11-13T17:51:38.417 回答
0

根据您的需要,有多种方法可以做到这一点。

如果您使用 Collection 来存储温度,则可以遍历它们并打印每个温度,并在它们之间使用空格或制表符。

System.out.print("Temperature: ");
for(int temp: temps)
{
    System.out.print(temp + " ");
}

如果您不太关心输出的格式,可以执行以下操作:

System.out.printf("Temperature: %s", Arrays.toString(temperature.toArray()));

这会给你这个:

Temperature: [10.0, 15.0, 20.0]

最后一个答案当然只适用于您的对象具有 toString() 实现的情况。

于 2013-11-13T18:10:08.957 回答
0

不确定您是否使用循环。

如果您使用 for 循环,则 System.out.print("Temperature:");在循环外编写。
然后在循环内你可以写System.out.print(temperature+"\t");

于 2013-11-13T17:53:38.243 回答
0

为什么不做类似的事情:

String temp = "";

for (strintg s : Temperature){
     temp+= s + " "; }

System.out.printf("Temperature: " + temp);

将温度数组中的所有信息提前传递到一个字符串中,然后将其作为一个字符串打印出来。

于 2013-11-13T18:18:08.123 回答