2016-04-01 61 views
0

首先,我有这个输入:打印列表与Java格式

[[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";
  • 更换,""; //元件之间删除逗号
  • 替换"."","; //改变点到逗号
  • 截断在小数点第2位; // 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(); 
} 

其实输出(注意这里的beggining一个空白,我也想删除它):

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 

预期输出:

0,00 1,00 0,67 -0,33 0,00 0,00 1,33 
1,00 0,00 -0,33 0,67 0,00 0,00 3,33 
0,00 0,00 -1,00 1,00 1,00 0,00 3,00 
0,00 0,00 -0,67 0,33 0,00 1,00 0,67 
0,00 0,00 -0,33 -1,33 0,00 0,00 -12,67 

回答

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(); 
} 
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 ArrayList中添加tmpArrayList<Double>