对于 Java 中的控制台菜单,我有时想读取整数和一些字符串。我有这两个功能:
获取字符串:
public String enterString(String question) {
System.out.println(question);
return scanner.nextLine();
}
要获得一个 int(稍后用于 switch 语句):
public int choose(int b, String question) {
Boolean chosen = false;
while(!chosen) {
chosen = true;
System.out.println(question);
int choice = scanner.nextInt();
if(choice >= 0 && choice <= b) {
return choice;
}
else {
chosen = false;
System.out.println("Not a valid choice.");
}
}
return 0; //the compiler complains otherwise
}
但是,如果我enterString()
先使用然后choose()
再enterString()
使用,它似乎使用了选择中的换行符。scanner.nextLine()
在不同的地方(每个功能的开始和结束)输入总是会引起问题。
我怎样才能使两者的任何组合起作用?