我对 Java 编程还很陌生,在任何地方都找不到我的问题的答案。基本上,我已经成功创建了一个程序,该程序可以构建摄氏度到华氏度转换以及华氏度到摄氏度转换的图表,但是我的循环打印语句在数字 9 之后没有正确排列,类似于:
9.0 48.2 40.0 4.44
10.0 50.0 41.0 5.0
我需要使用两个单独的方法来计算转换,然后在主方法中调用它们。这是我引用的带有 println 语句的主要方法:
public static void main(String[]args){
double celsius = 1;
double fahrenheit = 32;
while(celsius <= 50 && fahrenheit <= 120){
double toFarhenheit = celsiusToFahrenheit(celsius);
double toCelsius = fahrenheitToCelsius(fahrenheit);
DecimalFormat fardec = new DecimalFormat("#.##");
toFarhenheit = Double.valueOf(fardec.format(toFarhenheit));
DecimalFormat celsdec = new DecimalFormat("#.##");
toCelsius = Double.valueOf(celsdec.format(toCelsius));
System.out.println(celsius + " " + toFarhenheit + " " + fahrenheit +
" " +toCelsius);
celsius++;
fahrenheit++;
}
}
长话短说,有没有办法将 printf 与这种长打印语句一起使用,以便数字能够彼此对齐?
过去,我使用 printf %3d 和 %5d 等来排列整数,但是,我根本无法让它与这个特定的 print 语句一起工作。
任何想法和/或帮助将不胜感激。
最佳答案
使用System.out.printf(...)
和格式字符串在常规列中输出数据。避免使用 \t
因为它不可靠。例如,请查看here .
最终您的代码将如下所示:
System.out.printf(formatString, celsius, toFarhenheit, fahrenheit, toCelsius);
其中 formatString 是一个使用 printf 格式说明符和宽度常量的字符串,可以实现漂亮的输出。我将让您尝试使用格式字符串。它还将以“%n”结尾,这样它实际上就变成了带格式的 println。
关于java - 如何格式化 Java 中循环打印的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19338397/