比较Java中的两个字符串(If / Else语句) - Android App

时间:2013-07-24 01:50:13

标签: java android xml android-layout if-statement

我正在使用Android应用中的登录页面。

如您所知,应用程序必须检查用户名和密码是否有效,然后授予用户访问该应用程序的权限。

我使用了以下代码:

...

EditText un = (EditText) findViewById(R.id.username1);

EditText pw = (EditText) findViewById(R.id.password1);

String u = un.getText().toString();

String p = pw.getText().toString();


String myUser = "user1";

String myPass = "pass1";

//////// Now on the click of the Login Button:


public void onClickL (View view){

if ( (u == myUser) && (p == myPass)) /////// move to a new activity

else ///////Display a warning message: Try again

}

我在两个editText字段中输入了正确的字符串,但是我总是收到警告消息。 我不明白它有什么问题。

请帮忙:)

4 个答案:

答案 0 :(得分:8)

您应该使用String类的equals()方法来比较字符串。 ==比较仅比较对象引用。

if (p.equals("Password")) { 
    //Do stuff 
}

所以你应该改变:

if ((u.equals(myUser)) && (p.equals(myPass))) {
    // do stuff
}

请点击此处查看有关此常见混淆主题的更多信息:How do I compare strings in Java?

答案 1 :(得分:0)

始终使用String.equals(string)来比较字符串。 ==将比较引用是否相等,哪些不符合您想要的字符串。

答案 2 :(得分:0)

==将在这种情况下对字符串进行对象比较,虽然该值可能与String对象的值相同,但对象并不相同。因此我们使用String.equals(string);比较两个字符串对象的值。 所以 if(u.equals(string))p.equal(string)可能就是你要找的东西。

答案 3 :(得分:0)

由于java没有一些现代功能,因此==不适用于字符串。相反,它有点复杂。

要检查两个字符串是否相等,请在if语句中输入:

String.equals(otherString)

要比较长度,请使用.length方法对它们进行比较,然后使用==。

感谢。