COMP SCI 101 - 使用Printf对中字段

时间:2013-09-29 17:55:04

标签: java netbeans printf

我正在使用printf函数创建一个Celsius到Fahrenheit的转换表。

在我的笔记中,我发现我应该能够在%for printf之后立即使用^标记居中输出。但是,当我运行程序时,Netbeans总是给我一个错误消息。

我想知道是否有人可以帮助我集中我的输出。我的代码如下。

我查看了已经回答过的问题。然而,它们与我迄今为止在课堂上所教授的内容不符,因此 - 我无法使用它。

非常感谢任何帮助。

public class CelsToFahrTable {

/**
 * Main argument prints a Celsius to Fahrenheit conversion table
 * using integer Celsius degrees from 0 to 40
 */
public static void main(String[] args) 
{
    // declare variables
    double Cels; //control variable (Celsius Temperature)

    System.out.printf("%10s\t%10s%n", "Celsius", "Fahrenheit"); 
    //prints headers Celsius and Fahrenheit at the top to signify what the data
    //below means. Celsius should take up 10 columns then tab to Fahrenheit
    //which again takes up 10 columns

    for ( Cels = 0; Cels <= 40; Cels++)
        //creates count-controlled loop using for statement
        //Cels initialized to 0, continues expression until 40 and increments
        //by 1 degree each time

        System.out.printf("%10.0f%10.1f%n", Cels, 1.8*Cels+32.0);
    //creates table showing Celsius temperature followed by its corresponding
    //Fahrenheit temperature. Celsius temp is 10 columns with no decimals.  
    //Fahrenheit temp is 10 columns with a 1 decimal precision.

    //Note: I tried to center each field using "^" but it gave me an error 
    //every time

}//end main

“^”将放在最后:

System.out.printf ("%^10.0f%^10.1f%n", Cels, 1.8*Cels+32.0" 

----但是当我输入该代码时,我在Netbeans中收到错误。

1 个答案:

答案 0 :(得分:0)

如果查看Formatter javadoc,Java没有标记来使printf的输出居中,并且没有^标志。

您的笔记可能是指Lava library,它附带了C printf函数的“高级”Java端口。正如在标志部分下的熔岩specification中所指定的那样,^是居中输出的标志。

正如在其他地方指定的那样,您可以使用StringUtils.center中的Apache Commons Lang Library方法,或设计a method of your own