【问题标题】:arrays.toString() custom formattingarrays.toString() 自定义格式
【发布时间】:2013-04-04 17:50:41
【问题描述】:

我怎样才能改变输出

[ua, disclaimer, ok, ua, navigation, fault, ua, fault, previous, ua, fault, previous]

到这里

ua, disclaimer, ok ---> ua, navigation, fault ---> ua, fault, previous ---> ua, fault, previous

通过改变这个打印语句

System.out.println(Arrays.toString(arr))

【问题讨论】:

  • ....通过编写自己的方法
  • 指出我正确的方向不会杀死你
  • 对不起,我以为你在问如何修改 Arrays.toString() 的行为 - 你不能这样做。我已经发布了一些代码,可以打印出你想要的答案

标签: java arrays tostring


【解决方案1】:

通过编写自己的打印方法。像这样:

    public static String fancyPrint(Object... array) {
        StringBuilder output = new StringBuilder();
        int total = 0;
        for (Object o : array) {
            output.append(o.toString());
            total+=1;
            if (total%3==0) {
                output.append(" ---> ");
            } else {
                output.append(", ");
            }
        }
        //remove last ", " or " ---> " printed
        if (total%3==0) {
            output.delete(output.length()-" ---> ".length(), output.length());
        } else {
            output.delete(output.length()-", ".length(), output.length());
        }
        return output.toString();
    }

【讨论】:

  • 好的,这有帮助,只是几个问题。您只需将“-->”放在第三个学期之后,但我在前两个学期之后也需要它。此外,这个程序并不总是有 4 个学期,所以除了最后一个学期外,我需要在每个学期之后都有一个箭头。
【解决方案2】:

您可以先按元素数量修剪数组,然后再将其转换为字符串。所以你会在数组片段上运行 toString() 。现在使用这些较小的字符串并按需要的顺序打印它们。如果你想修剪,你必须形成新的子数组,这会浪费内存,你也可以一次打印出一个成员的数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2014-02-27
    • 2012-05-10
    • 2018-06-26
    相关资源
    最近更新 更多