【问题标题】:Add exact number of spaces to start of string using java.util.Formatter使用 java.util.Formatter 将确切数量的空格添加到字符串的开头
【发布时间】:2011-12-13 12:34:48
【问题描述】:

我正在使用 Formatter 将 Java 代码输出到文件。我想在每行的开头添加特定数量的空格。我的问题是我找不到“整齐”地做到这一点的方法。标准选项似乎只允许添加最小数量的空格,但不允许添加特定数量的空格。

作为一种解决方法,我目前正在执行以下操作: out.format("%7s%s", "", "My text"); 但我想只用两个像 out.format("%7s", "My text"); 这样的参数。

有谁知道是否有办法使用标准的格式化程序选项来做到这一点?

【问题讨论】:

    标签: java text-formatting


    【解决方案1】:

    我不确定你想要什么:

    out.format("xxx%10sxxx", "My text");
    // prints: xxx   My textxxx
    

    同时:

    out.format("xxx%-10sxxx", "My text");
    // prints: xxxMy text   xxx
    

    据我所知,没有办法使用旧的 C 样式格式来指定像“%*s”这样的参数的大小,因为这样你就可以传入(str.length() + 7)

    恐怕你的方式似乎是最“整洁”的。如果你能解释为什么你不喜欢它,也许我们可以找到更好的解决方法。

    【讨论】:

    • 我的意思是整洁,不必添加一个额外的参数,该参数只是为了欺骗 Formattor 打印我想要的空格数。它看起来很乱,并且会让不知道这个问题的人感到困惑。对于这种情况,可能返回一串空格的方法会更好。
    【解决方案2】:

    您可以在字符串中添加文本。 另一种重复任何字符串的方法,您可以使用此代码:-

    String str = "abc";
    String repeated = StringUtils.repeat(str, 3);
    

    这里的 StringUtils 是 org.apache.commons.lang3.StringUtils 类。

    【讨论】:

      【解决方案3】:

      使用Commons Lang

      String line = "Hello World!";
      int numberOfSpaces = 2;
      String lineWithSpacePadding = StringUtils.leftPad(line, line.length() + numberOfSpaces);
      

      【讨论】:

        猜你喜欢
        • 2016-04-08
        • 2019-09-19
        • 2011-12-06
        • 2011-08-30
        • 1970-01-01
        • 2023-02-04
        • 2011-07-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多