具有多个带&;条件的Java If语句&;操作员不工作
具有多个带&;条件的Java If语句&;操作员不工作,java,android,if-statement,Java,Android,If Statement,无论何时我以“Admin”和“1234”的形式输入,条件都会转到其他部分。请帮帮我,我是这个领域的初学者 string方法基于 字符串的数据/内容 试一试 private void validate(String userName, String userPassword){ if((userName == "Admin") && (userPassword == "1234")){ Intent intent = new Intent(M
无论何时我以“Admin”和“1234”的形式输入,条件都会转到其他部分。请帮帮我,我是这个领域的初学者
string方法基于
字符串的数据/内容
试一试
private void validate(String userName, String userPassword){
if((userName == "Admin") && (userPassword == "1234")){
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
} else{
counter --;
Info.setText(userName + " Number of Attempts Left: "+String.valueOf(counter) + " - " + userPassword);
if(counter == 0){
Login.setEnabled(false);
}
}
}
您应该使用
equals
方法比较字符串:
if(userName.equals("Admin") && userPassword.equals("1234")){
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
} else{
counter --;
Info.setText(userName + " Number of Attempts Left: "+String.valueOf(counter) + " - " + userPassword);
if(counter == 0){
Login.setEnabled(false);
}
}
顺便说一句,上面的代码比
"Admin".equals(UserName)
因为当UserName为null时,它不会抛出NullPointerException。==测试引用相等性(它们是否是相同的对象) .equals()测试值是否相等(逻辑上是否“相等”)
因此,请使用.equals()或equalsIgnoreCase()而不是==来比较字符串对象。尝试使用if(userName.equals(“Admin”)和&userPassword.equals(“1234”){}谢谢您的回答。但是你能告诉我“==”@Mohit==比较对象的引用有什么问题吗value@IntelliJAmiya==适用于所有基元类型、枚举。。。
UserName.equals("Admin")