2013-10-26 2 views
0

Как закодировать массив Java с фиксированной длиной 2 для итерации без замены предыдущих значений? Следующий код будет принимать пользовательские значения ввода, повторяющие цикл. Но он заменит предыдущие значения:Итерация массива Java с фиксированной длиной для ввода пользовательских значений ввода без замены прежних значений

Scanner input2 = new Scanner(System.in); 
char[] block = new char[2]; 
while (block[0] != 'C' && block[1] != 'C') { 
    System.out.println("enter number"); 
    block[0]=input2.next().charAt(0); 
    System.out.println("enter number"); 
    block[1]=input2.next().charAt(0); 
    System.out.println(block); 
} 

Массив должен остановить итерация, если пользователь вводит C, C для массива.

Thank you

+2

Вы уже задали этот вопрос [здесь] (http://stackoverflow.com/questions/19604774/java-iterate-array-with-a-fixed-length-and-take-values-with-scanner-class/19604986 # 19604986). Пожалуйста, внесите свой вопрос, если это возможно. – Jhanvi

+0

Вы должны перебрать его с помощью цикла for. –

+0

@Jhanvi Я хочу скопировать входные значения пользователя, не заменяя их новыми введенными значениями. –

ответ

0

Это то, что вы хотите? Цикл будет переключаться между индексами [0] и [1] каждой итерацией.

Scanner input2 = new Scanner(System.in); 
char[] block = new char[2]; 
int i = 0; 
while (block[0] != 'C' && block[1] != 'C') { 
    System.out.println("enter number"); 
    block[i%2]=input2.next().charAt(0); 
    i++; 
    System.out.println(block); 
} 
+0

Он говорит, что код слишком длинный при запуске –

+0

Код слишком длинный? Это не имеет никакого смысла. Какое исключение вы получаете точно? – noone

+0

Строка слишком длинная, перейдите в завернутый режим, чтобы увидеть всю строку –

0

Там два способа сделать это:

  1. использовать собственный размер увеличивающееся структуру данных как HashMap. Возможно, лучшим решением

  2. Создать большой 2D массив char[][] block = new char[100][2]; .Это будет работать только до 100 входов

При втором подходе, вам нужно увеличить массив, когда достигается максимальное количество, которое это довольно бессмысленно, потому что в любом случае вы будете в значительной степени реализовывать то, что находится под капотом структуры данных.

Мое предложение состоит в том, чтобы пойти с HashMap, но я предполагаю, что вы еще не изучили структуры данных. Единственное, что я могу предложить, если это назначение, состоит в том, чтобы просто пойти с 2D-массивом с заданным размером и разрешить так много входов.

Смежные вопросы