[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 من String.split بالإضافة إلى أنه لا يتطلب منك التقسيم بواسطة regex (هذا خيار واحد فقط).

Question

هل هناك أي طريقة مدمجة في Java تسمح لنا بتحويل سلسلة مفصولة بفاصلة إلى بعض الحاوية (مثل المصفوفة أو القائمة أو المتجه)؟ أو هل أحتاج إلى كتابة رمز مخصص لذلك؟

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



مثال على استخدام Collections .

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



يمكنك StringUtils من اباتشي اباتشي.

مثال

StringUtils.join(yourStirng, ',');



يمكنك استخدام الجوافة لتقسيم السلسلة ، وتحويلها إلى ArrayList. هذا يعمل مع سلسلة فارغة كذلك ، وإرجاع قائمة فارغة.

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]



يمكنك الجمع بين asList والانقسام

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



في groovy ، يمكنك استخدام tokenize (Character Token):

list = str.tokenize(',')



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

يجب أن تعمل من أجلك.




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));
}

يطبعك

-> سلسلة
-> مع
-> فاصلة




تحويل مجموعة إلى سلسلة كما فصل الفاصلة في جاوة 8

يحتوي كائن listOfString على عناصر "" A "و" B "و" C "و" D "]

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

الإخراج هو: - 'A' ، 'B' ، 'C' ، 'D'

وتحويل سلاسل صفيف لقائمة في جاوة 8

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



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

// enter code here



Related