我的意见如下:
String[] a = {"true","false","false","false","true","CC","true","false","false","CC","true","false","false","false"};
int[] b = {0,1,2,3,5,99,0,5,4,99,0,89,6,5};
要求是在数组a []中有任何 true 或 CC 时,我必须生成与输出数组中相同索引相对应的相同值,如果数组 a [] 中有 false ,相应的值应该添加到输出数组中。
对于这种情况,输出应为:
output[] = {0,6,5,99,0,9,99,0,100};
请建议。我已尝试过许多外观和if-else条件组合但无法获得所需的结果。
我的代码是:
package com.test;
import java.util.ArrayList;
public class ArrayTest {
public static void main(String[] args) {
String[] a = {"true","false","false","false","true","CC","true","false","false","CC","true","false","false","false"};
int[] b = {0,1,2,3,5,99,0,5,4,99,0,89,6,5};
ArrayList ar = new ArrayList();
int sum=0;
int flg =0;
for(int i =0; i<a.length;i++){
if(a[i].equals("true") && sum ==0 ){
ar.add(b[i] );
}
else if (a[i].equals("true") && sum!=0){
ar.add(sum);
ar.add(b[i]);
sum =0;
}
else if(a[i].equals("false")){
sum= sum+b[i];
}
else if((a.length-1 == i) && sum !=0){
ar.add(sum );
sum=0;
}
else if(a[i].equals("CC")){
ar.add(b[i]);
}
}
System.out.println(ar);
}
}
感谢。
答案 0 :(得分:3)
你可以在下面使用:
public static void main(String[] args) {
String[] a = {"true","false","false","false","true","CC","true","false","false","CC","true","false","false","false"};
int[] b = {0,1,2,3,5,99,0,5,4,99,0,89,6,5};
List<Integer> output = new ArrayList<Integer>();
boolean moveNext = true;
int sum = 0;
for(i = 0 ; i < a.length; i++){
if( a[i].equals("true") || a[i].equals("CC") ){
if(!moveNext){
output.add(sum);
sum = 0;
moveNext = true;
}
output.add(b[i]);
}
if( a[i].equals("false")){
sum += b[i];
moveNext = false;
}
}
if(!moveNext)
output.add(sum);
for(i = 0 ; i < output.size(); i++){
System.out.println(output.get(i));
}
}
答案 1 :(得分:2)
此代码适用于我:
public class ArrayTest {
public static void main(String[] args) {
String[] a = {"true","false","false","false","true","CC","true","false","false","CC","true","false","false","false"};
int[] b = {0,1,2,3,5,99,0,5,4,99,0,89,6,5};
ArrayList ar = new ArrayList();
int sum=0;
boolean isFalse = false;
for(int i =0; i<a.length;i++){
isFalse = false;
if(a[i].equals("true") || a[i].equals("CC")) {
if (sum != 0)
ar.add(sum);
ar.add(b[i]);
sum = 0;
}
else if(a[i].equals("false")){
sum= sum+b[i];
isFalse = true;
}
}
if (isFalse)
ar.add(sum);
System.out.println(ar);
}
}
输出:
[0, 6, 5, 99, 0, 9, 99, 0, 100]