有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

记事本++的nppexec中的java\t间距

我用java“CircleDemo”编写了一个程序,不可避免地会这样做:

System.out.printf("The circle's area \t   is \t %.2f \n", circle.getArea());
System.out.printf("The circle's diameter \t   is \t %.2f \n", circle.getDiameter());
System.out.printf("The circle's circumference is \t %.2f \n", circle.getCircumference());

在cmd中。exe显示如下所示:

The circle's area          is    3.14 
The circle's diameter      is    2.00
The circle's circumference is    6.28

漂亮、干净的格式

但是,Notepad++的控制台(nppexec)打印的程序如下所示:

The circle's area     is    3.14 
The circle's diameter      is    2.00
The circle's circumference is    6.28

您可以看到格式是如何不同的。现在,我已经玩了足够长的时间,以找到导致这一点的原因是“\t”在cmd中以不同的方式打印选项卡。exe与Notepad++的nppexec

如何编辑nppexec的“\t”格式以打印与cmd相同的“\t”。你会吗


共 (2) 个答案

  1. # 1 楼答案

    避免使用\t获取数组格式。我可能会简单地使用

    System.out.printf("The circle's area          is %.2f %n", circle.getArea() );
    System.out.printf("The circle's diameter      is %.2f %n", circle.getDiameter());
    System.out.printf("The circle's circumference is %.2f %n", circle.getCircumference());
    

    如果需要更动态的解决方案,您可以使用

    System.out.printf("The circle's %-13s is %.2f%n", "area", circle.getArea());
    

    或者如果响应不需要总是以The circle's开头

    System.out.printf("%-26s is %.2f%n", "The circle's area",  circle.getArea());
    

    DEMO

  2. # 2 楼答案

    你可以试试下面的例子。务必在宽度前使用“-”,以确保左缩进。默认情况下,它们将右缩进;这可能不符合你的目的

        System.out.printf("%-30s %-5s $%.2f\n","The circle's area ", "is" ,circle.getArea());
        System.out.printf("%-30s %-5s $%.2f\n","The circle's diameter ", "is" ,circle.getDiameter());
        System.out.printf("%-30s %-5s $%.2f\n","The circle's circumference ", "is" ,circle.getCircumference());
    

    资料来源:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax