2015-11-16 57 views
0

予有這種類型的代碼 列表L =新的ArrayList();爲什麼在List上的toString()之後添加了逗號?

l.add(" ;foo;bar;end"); 
    l.add(" ;more;foo;bar"); 

    String output = l.toString(); 

    System.out.println(output); 

輸出是

[ ;foo;bar;end 
, ;more;foo;bar 
] 

我希望

;foo;bar;end 
;more;foo;bar 

如何擺脫逗號和

+4

好,'的toString()'爲集合被定義爲有括號和逗號。如果你不想要它們,你需要迭代和打印你需要的方式。 – RealSkeptic

+0

但是我有很多字符串,如果我自己推出,性能是非常糟糕的。 – user2472565

+0

如果是這樣,也許你正在使用'+'運算符來構建你的字符串,而不是使用'StringBuilder'。 – RealSkeptic

回答

1

逗號用於你的兩個字符串數組分開,要刪除數組的字符串表示形式,您應該執行以下操作:

StringBuffer stringBuffer = new StringBuffer() 
for (String element : l){ 
    stringBuffer.append(element).append("\n"); 
} 
String result = stringBuffer.toString(); 
+2

除非需要線程安全的字符串構建,否則不推薦使用'StringBuffer'。在單線程實現中'StringBuilder'更好。 – RealSkeptic

+0

同意,忘記誰是誰))) –

1

使用這樣解決問題

public static void main (String[] args) { 
     Scanner stdin = new Scanner (System.in); 

     List l = new ArrayList(); 

     l.add(" ;foo;bar;end"); 
     l.add(" ;more;foo;bar"); 

      for (Object object : l) { 
       System.out.println(object); 

      } 
     } 
1

在次文件JAVA。 toString是()從類繼承java.util.AbstractCollection

公共字符串的ToString方法一

返回此collection的字符串表示。字符串 表示形式由它們通過其迭代器返回在 順序集合的元素的列表的,包含在方括號 (「[]」)。相鄰的元件由字符「」(逗號 和空間)分離。元素被轉換爲字符串,如 String.valueOf(Object)。

相關問題