如果部分不工作。特别是当使用&&运算符只有其他部分正在执行。 ||似乎工作正常

时间:2017-03-15 09:38:57

标签: java if-statement and-operator

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String a,b;
    a=jTextField1.getText();
    b=Arrays.toString(jPasswordField2.getPassword());
    if (a.equals("sam") && b.equals("hi")) {
        JOptionPane.showMessageDialog(null,"Login");
    }
    else{
        JOptionPane.showMessageDialog(null,"Error");
    }
} 

只有部分被执行,当使用“或”运算符时,如果部分有效。似乎在“和”条件中有错误。

2 个答案:

答案 0 :(得分:0)

Arrays.toString(new String[]{"hi"})返回“[hi]”。

因此,您应将if更改为if (a.equals("sam") && b.equals("[hi]"))或将b的值更改为b=jPasswordField2.getPassword()[0];

答案 1 :(得分:0)

getpassword方法将密码返回到括号中。回归将是这样的:[hi]。所以你必须使用删除括号。使用像打击这样的代码:

    b=b.substring(1,b.length()-1);

此代码将删除密码字符串中的括号。