2013-08-28 33 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藏品的参与者。

相关问题