Входные символы в массиве один за другим Java - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь взять пользовательский ввод и поместить его в массив символов, а затем распечатать его ... Это часть большой программы, и, поскольку я новый кодер, я надеялся, что вы сможете сохранить программа простая без .... Я получаю сообщение об ошибке «Индекс массива вне границ». Я попытался изменить длину массива, но это все равно не сработало.

public static void main(String[] args) {
        // TODO Auto-generated method stub


        char[] ToEdit = new char [];

        Scanner sc = new Scanner(System.in);
        for (int i=0; i<5; i++)
        {
            System.out.println(i + ":");
            ToEdit[i] = sc.next().charAt(i);
        }
        System.out.println(ToEdit);

    }

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Это не скомпилируется, так как вам нужно сначала добавить длину массива char: char [] ToEdit = new char [5]; Тогда этот код ToEdit [i] = sc.next (). CharAt (i); создает массив строк из привязанного исключения. Потому что charAt (i) каждый раз находит char в 0,1,2,3,4 и так далее в строке, как показано ниже (вывод вашей программы). Поэтому вам нужно изменить это на ToEdit [i] = sc.next (). CharAt (0);

0: ABCDE 1: ACX 2: ACV 3: acvff 4: acdcdvc acvfd

0 голосов
/ 30 апреля 2018

Проблема заключается здесь: char[] ToEdit = new char [];.

В этой строке вы создаете пустой массив без размера. Вам необходимо изменить его на: char[] ToEdit = new char [5];.

Более того, вам нужно изменить это: ToEdit[i] = sc.next().charAt(i); на это: ToEdit[i] = sc.next().charAt(0);. Проблема с вашей текущей строкой в ​​том, что даже если вы введете 1 символ, ваш код будет искать больше.

В качестве примечания было бы рекомендовано извлечь число 5 в качестве переменной. Это позволит вам увеличить или уменьшить количество символов, которое ваша программа может обработать, изменив только одно местоположение.

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

...