我有String的数组列表"mArrayListvarinats"
,其中包含用管道分隔的字符串,例如225356175|225356176|225356177|225356178|225356179|225356180|225356181|225356182|225356183|225356184|225356185|225356186|225356187|225356188|225356189|225356190|225356191|225356192
mArrayListvarinats
的大小可能是0直到n现在我想从mArrayListvarinats中找出那些字符串之间的公共字符串。
对于前。如果大小为两个,则代码可能如下所示。
String temp[] = mArrayListvarinats.get(0).split("\\|");
String temp1[] = mArrayListvarinats.get(1).split("\\|");
然后循环将在两个数组上工作以得到一个公共数组。但是,如何在循环内以任意大小实现它,因为这些临时数组将在
mArrayListvarinats
的循环中生成? 最佳答案
这样的事情应该工作:
HashSet<String> allStrings = new HashSet<String>();
HashSet<String> repeatedStrings = new HashSet<String>();
for(String pipedStrings: mArrayListvarinats){
String temp[] = pipedStrings.split("\\|");
for(String str : temp){
if(!allStrings.add(str)){
repeatedStrings.add(str);
}
}
}
这样,您将拥有包含所有唯一字符串的HashSet
allStrings
。另一个HashSet repeatedStrings
包含出现多次的所有字符串。