我无法检测用户输入是否存在。
boolean idFound=false;
while((s = br.readLine()) != null){
if (s.split(",")[1].contains(infoToRemove)) {
continue;
}
wr.println(s);
idFound=true;
}
if(idFound=false)
JOptionPane.showMessageDialog(null,"ID not exist","Error",JOptionPane.ERROR_MESSAGE);
我尝试了这段代码,但如果ID不存在则不会出现对话框。
答案 0 :(得分:2)
您正在为不包含ID的每一行显示消息。如果没有包含ID的行,您必须执行的操作是显示它。你只会知道
因此,你应该使用一个初始化为false的布尔变量idFound
,并循环直到它变为真,或者已经满足读者的结尾。然后在循环之后,您可以通过检查此布尔变量的值来判断是否已找到ID,并在消息仍为假时显示该消息。
我不会提供代码,因为你应该能够自己解决这个问题。
编辑:您更新的代码有两个错误:
if (s.split(",")[1].contains(infoToRemove)) {
continue;
}
如果我理解正确,如果字符串包含infoToRemove,则表示您已找到该ID。所以这就是idFound
变量应该成立的地方。你最好不要使用continue和break。而是用if / else
覆盖所有可能的案例。
if (idFound=false)
=
是赋值运算符,而不是相等运算符。所以它应该是
if (idFound == false)
或更好:
if (!idFound)