如何在Java中减少数组?

时间:2013-03-03 03:12:42

标签: java arrays char decrement

这是我要开始的代码。

static char[] a1 = {'a', 'b', 'c', 'd', 'e'};
static char[] a2 = {'a', 'c', 'd', 'c'};

        for (int i = 1; i <= 5 ; i++) {

            if( a1[i] == a2[i] ){
                sop(a2[i] + "");
            }else{

                if( a1[i] > a2[i] ){
                    sop("");
                }else if( a1[i] < a2[i] ){
                    sop("-");
                    a2[i] = a2[i-1];
                }

            }
        }

我想知道你如何减少行a2[i] = a2[i-1]。我做得对吗?

最后,我正在努力调整a1a2。所以我可以得到输出:

ABCDE
A-CD-C

注意:sop = System.out.print

1 个答案:

答案 0 :(得分:0)

如果我开始思考,在使用减量时你可能会尝试减少第二个数组的索引使用量?如果是这样,那就不行。除了存在诸如数组寻址之类的问题之外(Java索引位置0的数组元素,而不是位置1。

无论如何,对于您的问题陈述,您可以尝试:

static char[] a1 = {'a', 'b', 'c', 'd', 'e'};
static char[] a2 = {'a', 'c', 'd', 'c'};

for(int k=0;k<a1.length;k++)
    System.out.print(a1[k]);
System.out.println();

for (int i = 0, j=0 ; i<a1.length && j<a2.length ; i++, j++)
{
    if( a1[i] == a2[j] )
        System.out.print(a2[j]);
    else if( a1[i] < a2[j] )
    {
        System.out.print("-");
        j--;
    }

}