-1

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

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

4

1 回答 1

2

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

  • 当您找到该 ID 时(这意味着该 ID 存在),或
  • 当您阅读了所有行但没有找到它时(这意味着该 ID 不存在)

因此,您应该使用idFound初始化为 false 的布尔变量,并循环直到它变为 true,或者读取器结束。然后在循环之后,您可以通过检查此布尔变量的值来判断是否找到了 ID,如果仍然为假,则显示消息。

我不会提供代码,因为您应该能够自己弄清楚。

编辑:您更新的代码有两个错误:

if (s.split(",")[1].contains(infoToRemove)) {
    continue;
}

如果我理解正确,如果字符串包含 infoToRemove,则表示您已找到 ID。所以这就是idFound变量应该变为真的地方。你最好不要使用 continue 和 break。而是用 覆盖所有可能的情况if / else

if (idFound=false)

=是赋值运算符,而不是相等运算符。所以应该是

if (idFound == false)

或者,更好:

if (!idFound)
于 2013-08-20T14:51:14.733 回答