比较 Java 中的两个字符串未给出预期结果

Comparing two string in Java not giving the expected result

我是初学者,我想在 EditText 中获取文本并将其与另一个字符串进行比较。

我想检查 EditText 中写入的文本是否等于 'String' 然后显示 Toast 但它不起作用

我调试并检查两者的值完全是 admin 但如果块不起作用并显示 else 块。

if (editText.getText().toString() == "admin") {
    //Never enter this block when i type "admin" in the EditText.
    Toast.makeText(MainActivity.this,"ok",Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(MainActivity.this,"Wrong User Or Pass",
}

您必须使用 String.equals() 方法进行字符串匹配。

把你的代码改成这样

    if (editText.getText().toString().equals("admin")) {
        //your code
    }

.

不要使用 == 来比较字符串,因为字符串不是原始数据类型 而是使用 user.equals("admin")

您可以使用 equalsIgnoreCase.

此方法将此字符串与另一个字符串进行比较,忽略大小写。如果两个字符串的长度相同,则认为两个字符串不区分大小写,并且两个字符串中的对应字符不区分大小写。

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            if (user.equalsIgnoreCase("admin")) {
Toast.makeText(MainActivity.this,"ok",Toast.LENGTH_LONG).show();

            }
            else {
                Toast.makeText(MainActivity.this,"Wrong User Or Pass",Toast.LENGTH_LONG).show();
                Toast.makeText(MainActivity.this,user,Toast.LENGTH_LONG).show();

            }

    });

当我使用这种方式时,我解决了我的问题。

  boolean result = String1.equals(String2);
    if (result)
    {
        return  true;
    }
    else
    {
        return  false;
    }