在控制台输出中排列数据 java

lining up data in console output java

我有以下代码摘录;

问题是

(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;
    }
}

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

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

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

Format String Syntax