例如,在数组中
["1", "2", "3", "4", "5", "6", "7"]
我希望代码产生一个输出
["1 2", "3 4", "5 6", "7"]
到目前为止,我有:
public static void combine(ArrayList<String> list) {
for (int i = 0; i < list.size(); i++) {
String a0 = list.get(i);
String a1 = list.get(i + 1);
String a2 = a0 + a1;
if (list.get(i + 1) == null) {
a2 = a1;
}
list.remove(i);
list.remove(i + 1);
list.add(i, a2);
}
}
您当前的代码将引发,OutOfBoundsException
因为它不会在循环时检查列表是否在索引中包含值。
这样做的一个好方法是初始化一个列表,该列表将保存串联的值。
public static ArrayList<String> combine(ArrayList<String> list) {
ArrayList<String> newList = new ArrayList<>();
for (int i = 0; i < list.size(); i = i + 2) {
// get first number
String firstNumber = list.get(i);
// check if second number exists
if (i + 1 < list.size()) {
String secondNumber = list.get(i + 1);
// add concatenated string to new list
newList.add(firstNumber + " " + secondNumber);
} else {
// no second number exists, add the remaining number
newList.add(firstNumber);
}
}
return newList;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句