如何在Java中减少数组?

如何在Java中减少数组?,java,arrays,char,decrement,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

这是我的代码开始

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

            }
        }

注意:
sop=System.out.print

如果我了解您的想法,在使用减量时,您可能只是试图减少第二个数组的索引使用量?如果是这样的话,那就不行了。此外,还有一些问题,例如数组寻址(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--;
    }

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

对于(int k=0;k你的第一语言是什么?我能理解的是,你只改变数组中的一个点,你想全部改变吗?你需要一秒钟的时间来改变其他值。@RicardoOrtegaMagaña你是指编程语言吗?我正试图减少a2的数组。例如,请发布你想要得到的输出。如果数组s本身应该改变,请告诉我们如何改变。@Rixuel勋爵对不起,但是“减少数组”不清楚。@PM77-1我正在比较a1和a2。首先,我得到'a'和'a',然后我得到'b'和'c'。之后,我得到'c'和'd',但由于'b'和'c'不相等,我不希望a2的值'c'移到'd',这样我就可以得到'c'和'c',而不是'c'和'd'。
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--;
    }

}