java - 如何打印垂直对齐的文本

标签 java string formatting alignment

我想在文件中打印以下格式的输出..

1 Introduction                                              1
 1.1 Scope                                                  1
 1.2 Relevance                                              1
   1.2.1 Advantages                                         1
     1.2.1.1 Economic                                       2
   1.2.2 Disadvantages                                      2
2 Analysis                                                  2

我无法让页码在一行中垂直对齐。如何做到这一点??

最佳答案

您需要将第一列左对齐,将第二列右对齐。

这是一个例子:

    String[] titles = {
        "1 Introduction",
        " 1.1 Scope",
        " 1.2 Relevance",
        "    1.2.1 Advantages",
        "      1.2.1.1 Economic",
        "    1.2.2 Disadvantages",
        "2 Analysis",
    };
    for (int i = 0; i < titles.length; i++) {
        System.out.println(String.format("%-30s %4d",
            titles[i],
            i * i * i // just example formula
        ));
    }

这会打印 ( as seen on ideone.com ):

1 Introduction                    0
 1.1 Scope                        1
 1.2 Relevance                    8
    1.2.1 Advantages             27
      1.2.1.1 Economic           64
    1.2.2 Disadvantages         125
2 Analysis                      216

格式 %-30s %4d 左对齐(- 标志)宽度为 30 的第一个参数,右对齐宽度为 4 的第二个参数.

API 链接

关于java - 如何打印垂直对齐的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3177697/

相关文章:

javascript - 阻止 ReSharper 将 JavaScript 函数参数放入新行

java - 需要更快的 Word Builder 算法

python - 仅包含 'a' 、 'b' 或 'c' 的子字符串

java - 与多个处理程序的 jetty session

C++ 加速多个 substr() 或等效函数调用以解析大字符串

c# - 检查字典是否包含子字符串?

html - 如何更改文本框的样式? (HTML/CSS)

python - .format() 使用 {0 :g} to remove trailing zeros 时返回 ValueError

java - 如何将 DeferredResult 与 ListenableFuture 列表结合使用?

java - 在 JLabel 中追加文本