将二维数组格式化为文本文件

时间:2013-03-20 23:37:48

标签: java multidimensional-array formatting text-files

我有一个2D数组,我想将它导出到一个文本文件中。我有格式化问题。例如,我希望有这种格式:

  11 22 33 44
  22 33 44 33

但是这段代码产生了这种格式:[[11 22 33 44] [22 33 44 33]]。我更喜欢\ tab作为连续两个数字之间的距离。提前谢谢。

PrintWriter pr = new PrintWriter("file");

for (int i=0; i<X.length ; i++){
pr.println(Arrays.deepToString(X));
}
pr.close();

1 个答案:

答案 0 :(得分:0)

我建议使用一段填充空格的代码以便正确格式化,让我们调用方法printWithFormat(String s)。使用deepToString是非常不方便的,如果你看一下规范,它会为你提供一个完整的数组表示,以及它如何将它打印到文件中。我现在假设X是一个二维数组。

如果没有空格格式,代码可能看起来像这样,请注意,虽然这会给你一个

11 22 33 44
33 44 55 55

不同长度的数字会出错,例如

11 222 33 4
3 44 55 5

因此需要根据需要填充空格

无论如何非空白代码:

for (int i=0; i<X.length ; i++){
  for(int j=0; j<X[0].length; j++){
    pr.print(X[i,j]);
    if(j<X[0]-1) pr.print(" "); //separate the numbers by spaces, no need to put a space at teh end
  }
  pr.println(""); //go to the next line
}

如果您无法使用空格格式化工作,我相信它已经无数次完成,您将能够在线找到它。