【问题标题】:Print ArrayList like Excel spreadsheet [duplicate]像 Excel 电子表格一样打印 ArrayList [重复]
【发布时间】:2020-10-23 16:54:05
【问题描述】:

有没有办法像 Excel 电子表格一样打印 ArrayList?

我的代码是这样的:

private static void printList() {
    for (int i = 0; i < matrizCuadrada.size(); i++) {
        System.out.print(fillWithSpaces(matrizCuadrada.get(i).getValor()));;
    }
}

private static String fillWithSpaces(String cadena) {
    int cantidadEspacios = 9 - cadena.length();
    for (int i = 0; i < cantidadEspacios; i++) {
        cadena += " ";
    }
    return cadena;
}

【问题讨论】:

  • 多说一点你需要什么。
  • 只需在控制台中打印,就像 Excel 电子表格格式一样,包含列和行

标签: java


【解决方案1】:

要在二维中打印像ArrayList 这样的一维数据结构,您必须设置固定的行大小。这实际上是一个非常类似于将存储在线性堆叠内存中的像素加载到二维图像的问题。有关此问题的更多详细信息,请查看链接文章。

你需要嵌套循环来实现这种行为,你已经拥有了(fillWithSpaces()(包含一个循环)是从另一个循环内部调用的)。所以,把fillWithSpaces() 改成这样:

private static String fillWithSpaces(String cadena) {
    String line = "";
    for (int i = 0; i < cadena.length(); i++) {
        line += cadena.charAt(i);
        line += " ";
    }
    return line;
}

还可以使用名为StringJoiner 的实用程序来简化此代码,以使用分隔符连接字符串和字符:

private static String fillWithSpaces(String cadena) {
    StringJoiner joiner = new StringJoiner(" ");
    for (int i = 0; i < cadena.length(); i++) {
        joiner.add(cadena.charAt(i));
    }
    return joiner.toString();
}

此外,您需要在外循环的末尾跳到新行。这可以通过将System.out.print() 更改为System.out.println() 来完成,这将自动输出一个新行。

查看 Daniel Shiffman 的这篇文章,了解在不同情况下(在像素、像素和更多像素下)对同一问题的详细解释:https://processing.org/tutorials/pixels/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2014-05-03
    • 2020-05-22
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多