比较Java中的两个字符串没有给出预期的结果[重复]

问题描述 投票:-1回答:4

这个问题在这里已有答案:

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

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

我调试并检查两者的值是否完全是admin但是如果block不工作并显示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",
}
java android string string-comparison
4个回答
11
投票

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

将您的代码更改为此

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

.


5
投票

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


0
投票

你可以使用equalsIgnoreCase

此方法将此String与另一个String进行比较,忽略了大小写。如果两个字符串具有相同的长度,则认为它们是相等的忽略大小写,并且两个字符串中的相应字符等于忽略大小写。

    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();

            }

    });

0
投票

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

  boolean result = String1.equals(String2);
    if (result)
    {
        return  true;
    }
    else
    {
        return  false;
    }
© www.soinside.com 2019 - 2024. All rights reserved.