如何在Java中将逗号分隔的字符串转换为ArrayList
我有一个逗号分隔的字符串,我需要将其转换为ArrayList。 我试过这样做如何在Java中将逗号分隔的字符串转换为ArrayList,java,Java,我有一个逗号分隔的字符串,我需要将其转换为ArrayList。 我试过这样做 import java.util.ArrayList; import java.util.Arrays; public class Test { public static void main(String[] args) { String CommaSeparated = "item1 , item2 , item3"; ArrayLis
import java.util.ArrayList;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String CommaSeparated = "item1 , item2 , item3";
ArrayList<String> items = (ArrayList)Arrays.asList(CommaSeparated.split("\\s*,\\s*"));
for(String str : items)
{
System.out.println(str);
}
}
}
当我试图强制将列表转换为arrayList时。由
数组返回的arrayList
。asList
不是java.util.arrayList
。它是java.util.Arrays.ArrayList
。因此,您不能将其强制转换为java.util.ArrayList
您需要将列表传递给java.util.ArrayList
类的构造函数:
List<String> items = new ArrayList<String>(Arrays.asList(CommaSeparated.split("\\s*,\\s*")));
List items=newarraylist(Arrays.asList(CommaSeparated.split(“\\s*,\\s*”));
或者,您可以简单地分配结果:
List<String> items = Arrays.asList(CommaSeparated.split("\\s*,\\s*"));
List items=Arrays.asList(CommaSeparated.split(“\\s*,\\s*”);
但是请注意,Arrays.asList
返回一个固定大小的列表。您不能向其中添加或删除任何内容。如果要添加或删除某些内容,应使用第1个版本
注意:你应该使用
List
作为引用类型,而不是ArrayList
你不能像扔糖果一样扔东西Arrays.asList()
不返回ArrayList
,因此无法强制转换它(它返回一个不可修改的列表)
但是,您可以执行
新建ArrayList(Arrays.asList(…)代码>它绝对需要是数组列表吗?通常,您希望使用最通用的表单。如果您可以使用列表
试试:
List<String> items = Arrays.asList(...);
List items=Arrays.asList(…);
您仍然可以按当前的方式对其进行迭代。String CommaSeparated=“item1,item2,item3”;
String CommaSeparated = "item1 , item2 , item3";
ArrayList<String> items = new ArrayList(Arrays.asList(CommaSeparated.split("\\s*,\\s*")));
for(String str : items)
{
System.out.println(str);
}
ArrayList items=新的ArrayList(Arrays.asList(CommaSeparated.split(“\\s*,\\s*”));
用于(字符串str:items)
{
系统输出打印项次(str);
}
请尝试使用以下代码
字符串[]温度
/* delimiter */
String delimiter = ",";
/*
* given string will be split by the argument delimiter provided.
*/
temp = parameter.split(delimiter);
ArrayList<String> list = new ArrayList<String>();
for (int l = 0; l < temp.length; l++)
{
list.add(temp[l]);
}
/*分隔符*/
字符串分隔符=“,”;
/*
*给定的字符串将由提供的参数分隔符分割。
*/
temp=参数分割(分隔符);
ArrayList=新建ArrayList();
对于(int l=0;l
tryArrayList items=new ArrayList(Arrays.asList(CommaSeparated.split(\\s*,\\s*))
这个问题可能有用:他们使用相同的名称ArrayList
两次是非常烦人的:)varargs无助于拆分字符串-上面的声明是错误的。它不会返回不可修改的列表,您仍然可以调用set(…)
没有任何问题。@arshajii很公平,我们称之为“固定大小列表”。
/* delimiter */
String delimiter = ",";
/*
* given string will be split by the argument delimiter provided.
*/
temp = parameter.split(delimiter);
ArrayList<String> list = new ArrayList<String>();
for (int l = 0; l < temp.length; l++)
{
list.add(temp[l]);
}