打印列表Java格式

时间:2016-04-01 04:26:13

标签: java arraylist format

首先,我有这个输入:

[[0.0, 1.0, 0.6666666666666666, -0.3333333333333333, 0.0, 0.0, 1.3333333333333333], [1.0, 0.0, -0.3333333333333333, 0.6666666666666666, 0.0, 0.0, 3.3333333333333335], [0.0, 0.0, -1.0, 1.0, 1.0, 0.0, 3.0], [0.0, 0.0, -0.6666666666666666, 0.3333333333333333, 0.0, 1.0, 0.6666666666666667], [0.0, 0.0, -0.3333333333333333, -1.3333333333333333, 0.0, 0.0, -12.666666666666666]];

然后我想输出格式化的输入。有一些规则:

  • 替换[;
  • ""
  • 替换];
  • "\n"
  • 将[{1}}替换为,; //删除元素之间的逗号
  • 将[{1}}替换为""; //将点更改为逗号
  • 在小数点后第二位截断; // 1.33333 - > 1.33

所以,这是我的代码:

"."

实际上输出是(注意在开始时有一个空格,我也想删除它):

","

预期输出:

@Override
public String toString() {
   StringBuilder sb = new StringBuilder("\n");

   sb.append("\n").append(numbersOfExmaple.toString()
           .replaceAll("\\[", "")
           .replaceAll("\\]", "\n")
           .replaceAll(",", "")
           .replaceAll("\\.", ","));
           // String.format isn't working...
    return sb.toString();
}

3 个答案:

答案 0 :(得分:0)

1您可以将字符串解析为数组 2截断十进制 3在打印更换之前,逐个打印阵列元素。通过,

答案 1 :(得分:0)

您可以使用这种方法

for(ArrayList<Double> tmp:ad){
      for(Double t:tmp)
            System.out.print(String.format("%.2f ",t).replace(".",","));
      System.out.println();
}

此处ad id arraylist add tmp的arraylist是ArrayList<Double>

答案 2 :(得分:0)

尝试这样的事情

private static String matrixString(Double[][] numbersOfExmaple) {
    StringBuilder answ = new StringBuilder();

    for (Double[] arr : numbersOfExmaple) {
        for (Double val : arr) {
            answ.append(String.format("%7.2f", val).replace('.', ','));
        }
        answ.append('\n');
    }

    return answ.toString();
}