2013-08-28 54 views
-1

在java中編譯ArrayList之後,如何將其打印爲字符串? 使用ArrayList.toString()給出了括號括起來的值和它們之間的逗號。如何從ArrayList轉換爲String?

我想打印它們沒有括號,只有它們之間的空格。

+2

哪種語言? – Mayank

+0

創建您自己的將ArrayList作爲參數的實用程序方法。 – JustinKSU

+2

@Mayank鑑於ArrayList被提及,可能是Java編輯:nevermind –

回答

0

爲C#

string.Join(" ", _list); 
1

(假設的Java)

你可以寫你自己的方法,這樣做:

public static <T> String listToString(List<T> list) { 
    StringBuilder sb = new StringBuilder(); 

    boolean b = false; 
    for (T o : list) { 
     if (b) 
      sb.append(' '); 

     sb.append(o); 
     b = true; 
    } 

    return sb.toString(); 
} 

或者,如果你使用的番石榴,你可以使用Joiner

Joiner.on(' ').join(list) 

同樣,如果您只是有興趣的印刷,就可以避免創建一個新的字符串一起:

public static <T> void printList(List<T> list) { 
    for (T o : list) { 
     System.out.print(o); 
     System.out.print(' '); 
    } 
    System.out.println(); 
} 
+1

根據列表類型,'list.get(i)'可能是線性時間。爲什麼不使用for-each循環和布爾型標誌? – NPE

+0

@NPE好主意,請參閱編輯。 – arshajii

0

不知道你使用的是什麼語言,但嘗試之一:

ArrayList.join() 

ArrayList.toArray().join() 
+0

哦,如果你想避免逗號,使用join(「」)。 –

0
for(int i = 0; i < arraylist.size(); i++){ 
    System.out.print(arraylist.get(i).toString + " "); 
} 

???

1

如果您使用的是Eclipse Collections,則可以使用makeString()方法。

ArrayList<String> list = new ArrayList<String>(); 
list.add("one"); 
list.add("two"); 
list.add("three"); 

Assert.assertEquals(
    "one two three", 
    ArrayListAdapter.adapt(list).makeString(" ")); 

如果您可以將您的ArrayListFastList,你可以擺脫適配器。

Assert.assertEquals(
    "one two three", 
    FastList.newListWith("one", "two", "three").makeString(" ")); 

注:我的Eclipse藏品的參與者。

相關問題