【问题标题】:Using for loops to shift an array of characters使用 for 循环移动字符数组
【发布时间】:2016-01-12 02:59:55
【问题描述】:

我创建了一个char[],看起来像

[A, A, B, C]

我想删除最后一个字符,然后将其他字符向上移动一个并在第一个索引处存储一个新的char。所以它看起来像这样:

[D, A, A, B]

我将如何使用一两个 for loops 来做到这一点。我有正确的想法,只是没有正确实施。

char[] array = new char[4]; //Array looks like [A, A, B, C]

for(int i = 0; i <= array.length - 2; i++) {
    array[i] = array[i + 1];
}
array[0] = 'D'; //This should be the new char at index 0.

【问题讨论】:

    标签: java for-loop iteration


    【解决方案1】:

    从数组的末尾迭代到开头会更有意义:

    char[] array = new char[4]; //Array looks like [A, A, B, C]
    
    for(int i = array.length - 1; i > 0; i--) {
        array[i] = array[i - 1];
    }
    array[0] = 'D';
    

    【讨论】:

      【解决方案2】:

      对这么小的尺寸使用数组是可以的。

      只是指出另一种方法,您可以使用LinkedList

      LinkedList list = new LinkedList<Character>(Arrays.asList('A', 'A', 'B', 'C'));
      System.out.println(list); // prints "[A, A, B, C]"
      list.removeLast();
      list.addFirst('D');
      System.out.println(list); // prints "[D, A, A, B]"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        • 2015-08-02
        • 2017-08-20
        • 2013-10-02
        • 1970-01-01
        相关资源
        最近更新 更多