Программа не читает первый строковый ввод - PullRequest
0 голосов
/ 08 декабря 2018

искали около 30 минут в сети и нигде не могли найти эту ошибку.Итак, в основном у меня есть метод, чтобы найти электронную почту кого-то в матрице, чтобы иметь возможность изменить его.Проблема в том, что, когда я вхожу в случай 1, моя программа читает только ввод «Новое электронное письмо:» во второй раз, когда я пишу его.

public static boolean atualizarInfoParticipante(String email,int nEl,String [][]equipas){

    int pos=Utilitários.pesquisarElemento1(email,nEl,equipas);
    String email2;
    if(pos!=-1){
        int op;

        do{
            Formatter out=new Formatter(System.out);
            Utilitários.mostrarParticipante(out,equipas[pos]);
            //op=Utilitários.menuParticipante(email);
            System.out.println();
            System.out.println();
            System.out.printf("UPDATE USER INFO ",email);
            System.out.printf("\n");
            System.out.println("email - 1");
            System.out.println("Name - 2");
            System.out.println("Birth Date - 3");
            System.out.println("End - 0");
            op=ler.nextInt();
            ler.nextLine();

            switch(op){
                case 1: 
                        System.out.print("New email:");
                        email2=ler.nextLine();
                        if(Utilitários.pesquisarElemento1(email2,nEl,equipas)==-1){

                            equipas[pos][0]=ler.nextLine();
                        }
                        else{System.out.println("Email já existente. Alteração inválida.");}
                        break;}

Это только часть дела, единственная с ошибкой.

вывод:

   ac@abc.pt;   Ana Costa;  22/11/1999;    The Best;

UPDATE USER INFO
email - 1
Name - 2
Birth Date - 3
End - 0
1
New email:sss@abc.pt

        ;   Ana Costa;  22/11/1999;    The Best;

I 'Мы уже пытались очистить буфер в бесчисленных местах, ничего не изменилось.

1 Ответ

0 голосов
/ 08 декабря 2018

Я думаю, это потому, что вы читаете письмо два раза.

System.out.print("New email:");
email2=ler.nextLine();

Вы читаете письмо здесь и снова читаете здесь:

if(Utilitários.pesquisarElemento1(email2,nEl,equipas)==-1){

    equipas[pos][0]=ler.nextLine();
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...