有 Java 编程相关的问题?

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

用java格式化字符串

我想将状态消息打印到控制台中

   System.out.format("%-60s%10s\n", "Status 1", "[Success]");
            System.out.format("%-60s%10s\n", "Status 2", "[Failed]");
            System.out.format("%-60s%10s\n", "Status 2", "[Failed]");
            System.out.format("%-60s%10s\n", "Status 2 and some text", "[Failed]");
            System.out.format("%-60s%10s\n", "Status 2", "[Failed]");
            System.out.format("%-60s%10s\n", "Status 2", "[Success]");
            System.out.format("%-60s%10s\n", "Status 2 and some very long text", "[Failed]");
            System.out.format("%-60s%10s\n", "Status 2", "[Success]");
            System.out.format("%-60s%10s\n", "Status 2 and some very very very long text", "[Failed]");
            System.out.format("%-60s%10s\n", "Status 2", "[Success]");
            System.out.format("%-60s%10s\n", "Status 2", "[Failed]");

但正如您所看到的,第二列消息的格式不正确

Status 1                                                     [Success]
Status 2                                                      [Failed]
Status 2                                                      [Failed]
Status 2 and some text                                        [Failed]
Status 2                                                      [Failed]
Status 2                                                     [Success]
Status 2 and some very long text                              [Failed]
Status 2                                                     [Success]
Status 2 and some very very very long text                    [Failed]
Status 2                                                     [Success]
Status 2                                                      [Failed]

我想这样打印邮件:

Status 1                                                      [Success]
Status 2                                                      [Failed]
Status 2                                                      [Failed]
Status 2 and some text                                        [Failed]
Status 2                                                      [Failed]
Status 2                                                      [Success]
Status 2 and some very long text                              [Failed]
Status 2                                                      [Success]
Status 2 and some very very very long text                    [Failed]
Status 2                                                      [Success]
Status 2                                                      [Failed]

我怎么能做到


共 (2) 个答案

  1. # 1 楼答案

    为什么不添加"-"使最后一个字段左对齐,作为第一个字段?我想"%-60s%-10s\n"行得通

  2. # 2 楼答案

    你可以试试这个代码

      System.out.format("%-60s%.10s\n", "Status 1", "[Success]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Failed]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Failed]");
        System.out.format("%-60s%.10s\n", "Status 2 and some text", "[Failed]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Failed]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Success]");
        System.out.format("%-60s%.10s\n", "Status 2 and some very long text", "[Failed]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Success]");
        System.out.format("%-60s%.10s\n", "Status 2 and some very very very long text", "[Failed]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Success]");
        System.out.format("%-60s%.10s\n", "Status 2", "[Failed]");