在java中安排带条件的数组

时间:2016-02-21 00:36:27

标签: java arrays

我的意见如下:

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);
   }
}

感谢。

2 个答案:

答案 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]