1

我正在使用 printf 函数创建摄氏到华氏转换表。

在我的笔记中,我看到我应该能够在 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 中出现错误。

4

1 回答 1

0

如果您查看Formatterjavadoc,Java 没有将 printf 的输出居中的标志,也没有^标志。

您的笔记可能指的是Lava 库,它带有 C printf 函数的“高级”Java 端口。正如 Lava规范中关于标志的部分中所指定的,^是用于居中输出的标志。

正如 SO 上其他地方指定的那样,您可以使用Apache Commons Lang Library中的StringUtils.center方法,或者设计您自己的方法

于 2013-09-29T18:32:49.163 回答