检查输入无效

时间:2013-08-20 14:45:39

标签: java

我无法检测用户输入是否存在。

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不存在则不会出现对话框。

1 个答案:

答案 0 :(得分:2)

您正在为不包含ID的每一行显示消息。如果没有包含ID的行,您必须执行的操作是显示它。你只会知道

  • 找到ID(表示该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)