Java System.out行未正确执行

时间:2014-02-11 01:12:47

标签: java printf system.out

我的System.out Java行未正确执行,因此导致它们在一行上打印每行的一半。我不确定这里有什么问题。根据我的说明,他们似乎看起来没问题。有什么想法吗?

代码:

System.out.printf("The circumference of a circle with radius ", radius,  " is: ", circumference, ".\n");
System.out.printf("The area of a circle with radius ", radius, " is: ", areacircle, ".\n");
System.out.printf("The area of a sphere with radius ", radius, " is: ", areasphere, ".\n");
System.out.printf("The volume of a sphere with radius ", radius, " is: ", volumesphere, ".\n");

输出:

输入半径:2.5 具有半径的圆的圆周具有半径的圆的面积具有半径的球的面积具有半径的球的体积

2 个答案:

答案 0 :(得分:6)

你没有正确使用printf。这样:

System.out.printf("The circumference of a circle with radius ", radius,  " is: ", circumference, ".\n");

应该是:

System.out.printf("The circumference of a circle with radius %.2f is: %.2f%n", 
     radius, circumference);

%f是浮点(可能是此处加倍)值的占位符。 printf背后的整个想法是避免你在代码中做的丑陋的字符串连接。请注意,您应该使用%n作为printf和类似代码中的行尾,而不是\n

有关详细信息,您需要查看java.util.Formatter类的api。

答案 1 :(得分:3)

要正确使用printf,请在第一个参数中提供所有格式,并为所有其他参数提供值。使用占位符表示值。第一行示例:

System.out.printf("The circumference of a circle with radius %f is %f.\n",
    radius, circumference);

另见formatting summary