在网络中搜索了大约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;
我已经尝试清除无数个位置的缓冲区,没有任何改变。
答案 0 :(得分:1)
我认为这是因为您阅读了两次电子邮件。
System.out.print("New email:");
email2=ler.nextLine();
您正在这里阅读电子邮件,然后在这里再次阅读:
if(Utilitários.pesquisarElemento1(email2,nEl,equipas)==-1){
equipas[pos][0]=ler.nextLine();
}
我的理解是,如果该电子邮件不存在,则您正在阅读两次。 请输入您要阅读的班级名称。