gpt4 book ai didi

Java:将二维字符串数组打印为右对齐表

转载 作者:行者123 更新时间:2023-12-01 14:07:13 32 4
gpt4 key购买 nike

打印 String[][] 的单元格的最佳方法是什么?数组作为右对齐表?例如,输入

{ { "x", "xxx" }, { "yyy", "y" }, { "zz", "zz" } }

应该产生输出
  x xxx
yyy y
zz zz

这似乎是使用 java.util.Formatter 应该能够完成的事情。 ,但它似乎不允许非常数的字段宽度。最佳答案将使用一些标准方法来填充表格单元格,而不是手动插入空格字符。

最佳答案

这是一个答案,对每列使用动态生成的格式字符串:

public static void printTable(String[][] table) {
// Find out what the maximum number of columns is in any row
int maxColumns = 0;
for (int i = 0; i < table.length; i++) {
maxColumns = Math.max(table[i].length, maxColumns);
}

// Find the maximum length of a string in each column
int[] lengths = new int[maxColumns];
for (int i = 0; i < table.length; i++) {
for (int j = 0; j < table[i].length; j++) {
lengths[j] = Math.max(table[i][j].length(), lengths[j]);
}
}

// Generate a format string for each column
String[] formats = new String[lengths.length];
for (int i = 0; i < lengths.length; i++) {
formats[i] = "%1$" + lengths[i] + "s"
+ (i + 1 == lengths.length ? "\n" : " ");
}

// Print 'em out
for (int i = 0; i < table.length; i++) {
for (int j = 0; j < table[i].length; j++) {
System.out.printf(formats[j], table[i][j]);
}
}
}

关于Java:将二维字符串数组打印为右对齐表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/275338/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com