对齐数字有问题

Trouble with aligning numbers

如果这样的问题的答案已经存在,我很抱歉,我是一个非常新手的编码员,我可能没有找到它。

我正在做一个项目,根据三个点的 x 和 y 值给出距离、周长和面积。所说的点应该使用 printf 命令四舍五入到千位。

它应该是这样的:

三角形 ={(8.500 ,1.250) ,(2.500 ,1.250) ,(2.500 ,9.250)}

然而,我只能设法得到:

三角形 = { ( 8.5001.2502.5001.2502.5009.250

这是我的代码:

public class TriangleCalculator 
{

public static void main(String[] args) 
{
  System.out.println("Enter the x- and y- coordinates of the first point");
  Scanner keyBoard = new Scanner (System.in);
    double pointOneX = keyBoard.nextDouble();
    double pointOneY = keyBoard.nextDouble();
          System.out.println("Enter the x- and y- coordinates of the second point");
    double pointTwoX = keyBoard.nextDouble();
    double pointTwoY = keyBoard.nextDouble();
  System.out.println("Enter the x- and y- coordinates of the third point");
    double pointThreeX = keyBoard.nextDouble();
    double pointThreeY = keyBoard.nextDouble();

  System.out.printf("Triangle = { ( %.3f", pointOneX);
  System.out.printf("%.3f", pointOneY);
  System.out.printf("%.3f", pointTwoX);
  System.out.printf("%.3f", pointTwoY);
  System.out.printf("%.3f", pointThreeX);
  System.out.printf("%.3f", pointThreeY);
 }

}

如果有人能告诉或展示如何正确编写 printf 语句或如何正确对齐我的代码,我将不胜感激。

您的代码不会自行添加括号。

尝试:

System.out.printf("%.3f", pointOneY);
System.out.printf("),(");
System.out.printf("%.3f", pointTwoX);
System.out.printf("%.3f", pointTwoY);
System.out.printf("),(");    
System.out.printf("%.3f", pointThreeX);
System.out.printf("%.3f", pointThreeY);
System.out.printf(")}");

我在你的问题中没有看到任何关于对齐的信息,只有舍入和格式。

您可以,在这种情况下,我认为您应该在一个 printf 调用中处理多个数据项:

System.out.printf ("Triangle ={(%.3f ,%.3f) ,(%.3f ,%.3f) ,(%.3f ,%.3f)}",
    pointOneX, pointOneY, pointTwoX, pointTwoY, pointThreeX, pointThreeY);

这是针对您示例中不寻常的间距。对于每个逗号之前没有 space,或者每个逗号之前 和之后 没有 space,或者每个逗号之后只有 space ] 每个逗号,相应地调整格式字符串。

记住 printf 不会终止输出行。如果需要,在可移植代码中,在格式字符串的末尾添加 %n,或者对于 Unix 或 Windows,特别是 \n\r\n.