我是JAVA的初学者和一般的编程,所以请耐心等待,因为我可能没有使用正确的术语来正确描述我的疑虑。不过,我会尽我所能。 所以,我有这个ArrayList,我将使用正则表达式,将它拆分为逗号。 我真的需要一些帮助来解决这个问题,即使我必须改变我做这个过程的方式。保持这种方式并不重要,这对我来说是最重要的结果。 谢谢。
String temp;
String temp2;
ArrayList <String> tempsplit = new ArrayList<String> ();
ArrayList <String> dominios = new ArrayList<String> (); {
for (int h = 0; h < 191; h++){
temp = features.get(h);
**temp2.add(temp.split(","));
tempsplit.add(temp.split(","));**
//in these last couple lines I get the error "The method add(String) in the type ArrayList<String> is not applicable for the arguments (String[])"
for(int oi = 0; oi < tempsplit.size(); oi++){
for (int t = 0; t < dominios.size() ; t++){
int conf = 0;
if (tempsplit.get(oi) == dominios.get(t)){
conf = 0;
}
else{ conf = 1;
}
if (conf == 1){
dominios.add (tempsplit.get(oi));
}
}
}
答案 0 :(得分:3)
Collections.addAll(temp2, temp.split(","));
这使用帮助类集合按项添加String[]
。
答案 1 :(得分:2)
temp.split(",")
会返回String[]
。
List<String>.add
将String
作为参数,而不是字符串数组。
然而,您可以使用Collections.addAll
,它将数组作为第二个参数:
Collections.addAll(temp2, temp.split(","));
您也可以使用addAll(Collection<String> c)
temp
中的ArrayList<String>
方法,但必须将数组转换为Collection
:
temp2.addAll(Arrays.asList(temp.split(",")));
答案 2 :(得分:1)
有问题的代码基本上是:
ArrayList <String> tempsplit = new ArrayList<String>();
tempsplit.add(temp.split(",")); // compile error
问题是split()
会返回String[]
,但该列表只接受String
。
要修复,请将数组转换为List并将其传递给addAll()
:
tempsplit.addAll(Arrays.asList(temp.split(",")));
或使用实用程序addAll()
方法:
Collections.addAll(tempsplit, temp.split(","));
答案 3 :(得分:0)
您的Arraylist类型为String
而不是String[]
,您在add()
传递字符串数组,因为string.split()
会为您提供数组。相反,您可以
for(String a:temp.split(",")){
tempsplit.add(a);
}
答案 4 :(得分:0)
ArrayList类型中的方法add(String)不适用于参数(String [])
这意味着您有一个ArrayList<String>
,并且您尝试使用数组字符串(add
)调用String[]
方法,而不是一个String
。该方法需要一个String
,而不是一个数组。