2016-04-01 60 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>