我正在处理字符串值,如字符串结果"aa,bb,cc,dd,ee"
。
已经将其分成aa bb cc dd ee
和
qrList = result.getContents().toString().split("\\,");
List<String> resultToString= new ArrayList(Arrays.asList(qrList));
然后我创建了四个ArrayLists。
ArrayList<String> strA = new ArrayList();
ArrayList<String> strB = new ArrayList();
ArrayList<String> strCD = new ArrayList();
ArrayList<String> strE = new ArrayList();
当我使用下面的代码将字符串存储到每个新ArrayList
时。
for(int count=0; count<resultToString.size(); count++){
//separate string to array list
if(count%5==0){
strA.add(resultToString.get(count));
}else if(count%5==1){
strB.add(resultToString.get(count));
}else if(count%5==2||count%5==3){
strCD.add(resultToString.get(count));
}else if(count==4){
strE.add(resultToString.get(count));
}
正确的结果是
它不起作用,因为我只获得0
的索引值(strA存储了aa)。
我该怎么做才能改进我的代码?
答案 0 :(得分:2)
只需使用startsWith
并添加适当的值列表
for(int count=0; count<resultToString.size(); count++){
//separate string to array list
String s = resultToString.get(count);
if(s.startsWith("a")){
strA.add(s);
}else if(s.startsWith("b")){
strB.add(s);
}else if(s.startsWith("c")||s.startsWith("d")){
strCD.add(s);
}else if(s.startsWith("e")){
strE.add(s);
}
}
答案 1 :(得分:0)
模数运算符描述了等式的其余部分。让我们展示并解释一个例子:
正如in this documentation所解释的那样,在两个值之间执行模数只会显示余数值。对于例如8 % 3 == 2
因为8除以3会剩下2。
您的代码未显示所需结果的原因是由于使用了模数运算符。关于改进你的代码,我可以告诉你想要的只是使用数组列表索引,以便从resultToString
添加字符串
数组列表。
因此我会按以下方式修改你的循环:
for(int count=0; count < resultToString.size(); count++) {
//separate string to array list
if (count == 0){
strA.add(resultToString.get(count));
} else if (count == 1){
strB.add(resultToString.get(count));
} else if (count == 2 || count == 3){
strCD.add(resultToString.get(count));
} else if (count == 4){
strE.add(resultToString.get(count));
}
}
另一种方法是直接在结果String[]
上循环,并在for循环中使用该相对计数器,例如。
String[] qrList = results.getContent().toString().split("\\,");
for(int count = 0; count < qrList.length; count++) {
//each index represents the split string e.g
// [0] == "aa"
// [1] == "bb"
// [2] == "cc"
// [3] == "dd"
// [4] == "ee"
if (count == 0){
strA.add(qrList[count]);
} else if (count == 1){
strB.add(qrList[count]);
} else if (count == 2 || count == 3){
strCD.add(qrList[count]);
} else if (count == 4){
strE.add(qrList[count]);
}
}