我有一个对象,我正在写一个输出文件。
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("output.txt"));
bufferedWriter.write("Id"+"\t"+"Symbol"+"\t"+ Arrays.toString(data.symbols));
bufferedWriter.write("\n");
for (int i = 0; i < data.cIds.length; i++) {
bufferedWriter.write(data.ids[i]+"\t"+data.iSymbols[i]+"\t"
+Arrays.toString(data.matData[i])+"\n");
我在输出文件中得到一个表:
Id Symbol [001, 002, 003, 004, 005]
#1 a01 [2.3, 5.5, 4.5, 1.2, 3.3]
#2 a02 [2.2, 4.5, 7.5, 6.2, 9.3]
......等等。 如何显示没有括号的数组和以制表符分隔的字符串,以便输出如下:
Id Symbol 001 002 003 004 005
#1 a01 2.3, 5.5, 4.5, 1.2 3.3
#2 a02 2.2 4.5 7.5 6.2 9.3
答案 0 :(得分:2)
您可以实现自己的toString方法,该方法返回制表符分隔的字符串
类似
public static String toString(Object[] array)
{
StringBuilder builder = new StringBuilder();
for(Object o: array)
{
builder.append(o+"\t");
}
return builder.toString().trim();
}
答案 1 :(得分:1)
用此替换&#39; [,]&#39; ,
Arrays.toString(data.matData[i]).replaceAll("[\\[ | \\]]", "")
答案 2 :(得分:0)
使用Guava看起来很简单:
Double[][] data = {
{ 2.3, 5.5, 4.5, 1.2, 3.3 },
{ 2.2, 4.5, 7.5, 6.2, 9.3 }};
for (int row=0; row<data.length; row++) {
System.out.println(Joiner.on("\t").join(data[row]));
}
你不需要番石榴。您也可以使用循环和StringBuilder来完成它:
Double[][] data = {
{ 2.3, 5.5, 4.5, 1.2, 3.3 },
{ 2.2, 4.5, 7.5, 6.2, 9.3 }};
for (int row=0; row<data.length; row++) {
StringBuilder builder = new StringBuilder();
String prefix = "";
for (int col=0; col<data[row].length; col++) {
builder.append(prefix).append(data[row][col]);
prefix = "\t";
}
System.out.println(builder);
}