[Java] कॉमा से अलग स्ट्रिंग को ArrayList में कैसे परिवर्तित करें?


Answers

Arrays.asList सरणी द्वारा समर्थित एक निश्चित आकार की List देता है। यदि आप सामान्य म्यूटेबल java.util.ArrayList चाहते हैं तो आपको यह करने की ज़रूरत है:

List<String> list = new ArrayList<String>(Arrays.asList(string.split(" , ")));

या, अमरू का उपयोग कर:

List<String> list = Lists.newArrayList(Splitter.on(" , ").split(string));

एक Splitter का उपयोग करके आप स्ट्रिंग को विभाजित करने में और अधिक लचीलापन देता है और आपको उदाहरण देता है, उदाहरण के लिए, परिणामों में खाली तार छोड़ें और परिणामों को ट्रिम करें। String.split तुलना में इसमें कम अजीब व्यवहार भी है और साथ ही आपको रेगेक्स द्वारा विभाजित करने की आवश्यकता नहीं है (यह केवल एक विकल्प है)।

Question

क्या जावा में कोई अंतर्निहित विधि है जो हमें अल्पविराम से अलग स्ट्रिंग को कुछ कंटेनर (जैसे सरणी, सूची या वेक्टर) में परिवर्तित करने की अनुमति देती है? या मुझे इसके लिए कस्टम कोड लिखने की ज़रूरत है?

String commaSeparated = "item1 , item2 , item3";
ArrayList<String> items = //method that converts above string into list??



List<String> items = Arrays.asList(commaSeparated.split(","));

यह आपके लिए काम करना चाहिए।




Collections का उपयोग कर एक उदाहरण।

import java.util.Collections;
 ...
String commaSeparated = "item1 , item2 , item3";
ArrayList<String> items = new ArrayList<>();
Collections.addAll(items, commaSeparated.split("\\s*,\\s*"));
 ...



आप apache lib से स्ट्रिंग उपयोग कर सकते हैं।

उदाहरण

StringUtils.join(yourStirng, ',');



आप स्ट्रिंग को विभाजित करने के लिए गुवा का उपयोग कर सकते हैं, और इसे एक ऐरेलिस्ट में परिवर्तित कर सकते हैं। यह एक खाली स्ट्रिंग के साथ भी काम करता है, और एक खाली सूची देता है।

import com.google.common.base.Splitter;
import com.google.common.collect.Lists;

String commaSeparated = "item1 , item2 , item3";

// Split string into list, trimming each item and removing empty items
ArrayList<String> list = Lists.newArrayList(Splitter.on(',').trimResults().omitEmptyStrings().splitToList(commaSeparated));
System.out.println(list);

list.add("another item");
System.out.println(list);

निम्नलिखित आउटपुट:

[item1, item2, item3]
[item1, item2, item3, another item]



List<String> items = Arrays.asList(s.split("[,\\s]+"));



CSV को ArrayList में परिवर्तित करने के लिए यहां एक और है:

String str="string,with,comma";
ArrayList aList= new ArrayList(Arrays.asList(str.split(",")));
for(int i=0;i<aList.size();i++)
{
    System.out.println(" -->"+aList.get(i));
}

आपको प्रिंट करता है

-> स्ट्रिंग
- साथ>
-> अल्पविराम




आप लिस्ट और विभाजन के रूप में गठबंधन कर सकते हैं

Arrays.asList(CommaSeparated.split("\\s*,\\s*"))



List commaseperated = new ArrayList();
String mylist = "item1 , item2 , item3";
mylist = Arrays.asList(myStr.trim().split(" , "));

// enter code here



ग्रोवी में, आप टोकननाइज (कैरेक्टर टोकन) विधि का उपयोग कर सकते हैं:

list = str.tokenize(',')



जावा 8 में अलग कॉमा के रूप में स्ट्रिंग में स्ट्रिंग को कन्वर्ट करें

listOfString ऑब्जेक्ट में ["ए", "बी", "सी", "डी"] तत्व-

listOfString.stream().map(ele->"'"+ele+"'").collect(Collectors.joining(","))

आउटपुट है: - 'ए', 'बी', 'सी', 'डी'

और जावा 8 में सूची में स्ट्रिंग्स ऐरे कनवर्ट करें

    String string[] ={"A","B","C","D"};
    List<String> listOfString = Stream.of(string).collect(Collectors.toList());