【问题标题】:How to decrement an array in Java?如何在Java中递减数组?
【发布时间】:2013-03-03 03:12:41
【问题描述】:

这是我开始的代码。

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 个位置,您要全部更改吗?您将需要一秒钟来更改其他值。
  • @RicardoOrtegaMagaña 你是说编程语言吗?我正在尝试减少 a2 的数组
  • 例如,请发布您想要获得的输出。如果数组本身应该改变,请告诉我们如何改变。
  • @Lord Rixuel 抱歉,“递减数组”不清楚。
  • @PM77-1 我正在比较 a1 和 a2。首先,我得到'a'和'a',然后得到'b'和'c'。之后,我得到'c'和'd',但由于'b'和'c'不相等,我不希望a2的值'c'移动到'd',所以我可以得到'c'和'c' 下一个,而不是 'c' 和 'd'。

标签: java arrays char decrement


【解决方案1】:

如果我明白你的想法,在使用递减时,你可能试图减少第二个数组的索引使用?如果是这样,它不会那样工作。此外还有数组寻址等问题(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--;
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    相关资源
    最近更新 更多