2011-06-05 19 views
12

संभव डुप्लिकेट:
Java: convert List<String> to a join()d stringConvert सूची <String> सीमांकित स्ट्रिंग को

होने इस:

List<String> elementNames = Arrays.asList("h1", "h2", "h3", "h4", "h5", "h6"); 

क्या एक कस्टम परिसीमक के साथ स्ट्रिंग प्राप्त करने के लिए एक सुंदर तरीका है, जैसे:

"h1,h2,h3,h4,h5,h6" 
+0

डुप्लिकेट के लिए खेद है। एक त्वरित खोज की और इसे याद करने लग रहा था। – Alp

उत्तर

26

आप अपाचे द्वारा प्रदान की StringUtils लाइब्रेरी का उपयोग कर कोई आपत्ति नहीं है, तो आप कर सकता है:

// Output is "a,b,c" 
StringUtils.join(["a", "b", "c"], ','); 

https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html

+0

+1, मैं इसे – Alp

+2

स्ट्रिंगउल्ट्स.collectionToDelimitedString –

+1

कर दूंगा और आप केवल सरणी में नहीं, सूची और Iterable में भी पास कर सकते हैं। –

35
StringBuilder sb = new StringBuilder(); 

for(String s: elementnames) { 
    sb.append(s).append(','); 
} 

sb.deleteCharAt(sb.length()-1); //delete last comma 

String newString = sb.toString(); 

अद्यतन: शुरू जावा 8, आप का उपयोग कर एक ही परिणाम प्राप्त कर सकते हैं:

List<String> elementNames = Arrays.asList("1", "2", "3"); 

    StringJoiner joiner = new StringJoiner(",", "", ""); 
    elementNames.forEach(joiner::add); 

    System.out.println(joiner.toString()); 
+2

यह केवल तभी होता है जब वह बाहरी पुस्तकालयों का उपयोग करता है। =) – gouki

+1

कोई बाहरी पुस्तकालयों के लिए उपरोक्त - मैं "पुरानी" निर्भरताओं के साथ प्राचीन कोड को दोबारा सुधार रहा हूं। कॉम्पैक्टनेस के लिए – cschooley

संबंधित मुद्दे