Java将2个字符串与变量的完全匹配匹配

时间:2013-04-02 14:07:22

标签: java string match

我搜索过,我无法理解我的错误。

我有以下

while(logincount < 3){
if (tempuser.equals(actualuser) & (temppass.equals(actualpass))
  {
  System.out.println("Success");
  }
else  {
  System.out.println("FAIL");
    logincount=logincount+1;
  }
}

因为我不能从CMD复制; http://puu.sh/2svAo错误告诉我它期待'&gt;'

所以我试过&amp;,&amp;&amp;和2,我现在找不到钥匙。

谢谢,再次抱歉,如果这是愚蠢的话,我在最后一个问题上被投入了地狱,所以我希望这是'更好'! : - )

4 个答案:

答案 0 :(得分:1)

该行

if (tempuser.equals(actualuser) & (temppass.equals(actualpass))

有一个额外的开口括号

if (tempuser.equals(actualuser) & temppass.equals(actualpass))

if ((tempuser.equals(actualuser)) & (temppass.equals(actualpass)))

应该可以正常工作。

编辑:哎呀,感谢dukeling注意到我在最后一行做的拼写错误。 (现在修复)

答案 1 :(得分:0)

那里有两个错误: 1.“(temppass”确实需要前面的“(” 2.“&amp;”是一个按位OR,你需要一个逻辑OR:“&amp;&amp;”

所以“if(tempuser.equals(actualuser)&amp;(temppass.equals(actualpass))”变为“if(tempuser.equals(actualuser)&amp;&amp; temppass.equals(actualpass))”

答案 2 :(得分:0)

if语句中缺少“)”,这是更正

    while(logincount < 3){
        if (tempuser.equals(actualuser) & (temppass.equals(actualpass)))
          {
          System.out.println("Success");
          }
        else  {
          System.out.println("FAIL");
            logincount=logincount+1;
          }
        }

答案 3 :(得分:0)

您可以稍微改进一下代码。

for (int i = 0; i < 3; i++) {
    if (tempuser.equals(actualuser) && temppass.equals(acutalpass)) {
        System.out.println("Success");
        break;
    } else {
        System.out.println("FAIL");
    }
}
  1. 使用for循环而不是while循环,以便在一个地方完成循环变量的初始化和增量。
  2. 使用&&代替&进行逻辑AND
  3. 如果密码检查成功,请添加break语句。