我有readLine()的问题,即我的系统不接受我的任何输入请求,它直接执行下一行我的代码中的代码是错误的:
System.out.println("Choose your option:\n"
+ "To Add :\tA/a\n"
+ "To Delete:\tD/d\n"
+ "To Update:\tu/U\n"
+ "To Exit :\tpress any key");
char ch = (char) br.read();
//br.readLine().charAt(0);
br.skip(1);
if(ch =='a' || ch == 'A'){
addElement();
}
else if(ch == 'd' || ch == 'D') {
System.out.println("Please enter emp id :");
int id = Integer.parseInt(br.readLine());
//int id = Integer.parseInt(System.console().readLine("enter emp"));
deleteElement(id);
}
else if(ch == 'u' || ch == 'U') {
System.out.println("Please enter emp id :");
int id = Integer.parseInt(br.readLine());
updateElement(id);
}
else System.exit(0);
此代码仅在netbeans命令模式下工作,感谢
无法访问答案 0 :(得分:2)
问题是这里读到的第一个字符是:
char ch = (char) br.read();
...在你点击返回之前将无法使用,此时你有一个空行。
如果您运行代码并输入
dSomeone
(然后点击返回)然后你会得到一个名字“Someone”来试图删除。
最简单的方法可能是使用:
String option = br.readLine();
if (option == null) {
// User has basically terminated stdin. Die somehow
}
if (option.equalsIgnoreCase("D")) {
String name = br.readLine();
...
}
另请注意,此代码无效:
String empName = br.readLine();
deleteElement();
您要求输入名称,但忽略它。 deleteElement
如何知道您要删除哪个员工?您应该将该名称作为该方法的参数,并在调用时提供它:
String empName = br.readLine();
deleteElement(empName);
答案 1 :(得分:0)
如果您通过cmd行(终端)输入
,请尝试此操作String emp = System.console()。readLine(“请输入emp名称”);