【问题标题】:lining up data in console output java在控制台输出java中排列数据
【发布时间】:2015-11-01 10:34:03
【问题描述】:

我在下面有以下代码摘录;

问题是

(element.getChildNodes().item(0).getNodeValue())

输出不同数量的字符

这会导致eventy 与其他行的其他输出不一致,因此会出现锯齿形的数据而不是列中的数据,我尝试使用制表符和空格进行试验。但希望能得到一些帮助。

String eventy = null;

for (int i = 0; i < list.getLength(); i++) {
    Element element = (Element)list.item(i);
    String nodeName = element.getNodeName();

    switch (nodeName) {
        case "assd":
            System.out.println((element.getChildNodes().item(0).getNodeValue()) + "\t  " eventy);
            break;
        case "eventy":
            eventy = element.getChildNodes().item(0).getNodeValue();
            break;
    }
}

【问题讨论】:

    标签: java alignment output


    【解决方案1】:

    如果您可以假设来自“assd”子节点的字符串的最大长度,您可以使用System.out.printf。例如:

    System.out.printf("%-20s   %s%n", element.getChildNodes().item(0).getNodeValue(), eventy)
    

    将“assd”子节点的值打印到宽度为 20 的第一列,然后是变量 eventy 的值,然后是换行符。

    Format String Syntax

    【讨论】:

    • 这很好用,我不明白为什么现在改为 ,eventy 而不是 + eventy?
    • 类似地,如果我有另一个名为 eventyo 的变量,我将如何将它添加到输出中?
    • 计算得非常好 System.out.printf("%-30s %-30s %s%n", element.getChildNodes().item(0).getNodeValue(), eventy,eventyo) ;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2018-02-19
    相关资源
    最近更新 更多