【发布时间】:2020-02-08 13:05:31
【问题描述】:
如果用户输入无效,我希望我的程序只接受字符串并提示消息。
import java.util.Scanner;
public class Details{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String lastname;
String firstname;
String middlename;
System.out.print("Enter Number of passenger : ");
int passenger = input.nextInt();
for(int x = 0 ; x < passenger ; x++){
do{
System.out.print("\nEnter Lastname :");
lastname = input.nextLine().trim();
if(lastname.equals("") || lastname.equals(" "))
{
System.out.print("\nEnter Neccessary Details");
}
} while(lastname.isEmpty());
do{
System.out.print("\nEnter Firstname : ");
firstname = input.nextLine();
if(firstname.equals("") || firstname.equals(" "))
{
System.out.print("\nEnter Neccessary Details");
}
} while(firstname.isEmpty());
do{
System.out.print("\nEnter Firstname : ");
middlename = input.nextLine();
if(middlename.equals("") || middlename.equals(" "))
{
System.out.print("\nEnter Neccessary Details");
}
}while(middlename.isEmpty());
}//end of forloop
}
}
我已经尝试过这段代码,起初它可以工作,但从长远来看它会显示逻辑错误。 并给我这样的输出。
sample output
Enter Firstname : // the problem is, it seems has already have an input
Enter Neccessary Details
Enter Firstname :
那么我该如何解决这个问题? 是否有另一种方法来验证字符串输入?请保持简单,我只是一个初学者谢谢
【问题讨论】:
-
你能展示整个Java类吗?
-
对不起,我编辑了它
-
您能否更具体地说明具体您在哪里遇到错误?输入是什么,你得到了什么错误?
-
您似乎想要创建多个乘客,而不仅仅是一个。所以你肯定需要多个
lastName和firstName。所以创建一个类Passenger,它有一个名字和一个姓氏。然后使用List<Passenger>并在外循环的每次迭代中创建一个新的Passenger。
标签: java string validation input