Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中正确比较字符串?_Java_Android - Fatal编程技术网

Java 如何在Android中正确比较字符串?

Java 如何在Android中正确比较字符串?,java,android,Java,Android,我正在用android做一个Anagram应用程序。我有一些问题,例如,我有文本为“A”、“B”、“C”的按钮。我的代码生成字符串“ABC”,我的ans[i]=“ABC”。但当我比较它们时,它返回的结果是错误的。请帮忙 有一些代码示例,我在中遇到了问题 if(word==“ERATO”)Toast.makeText(this,ans.get(0),Toast.LENGTH_SHORT.show() public类MainActivity扩展了AppCompatActivity{ 公共名单基站;

我正在用android做一个Anagram应用程序。我有一些问题,例如,我有文本为“A”、“B”、“C”的按钮。我的代码生成字符串“ABC”,我的ans[i]=“ABC”。但当我比较它们时,它返回的结果是错误的。请帮忙

有一些代码示例,我在中遇到了问题

if(word==“ERATO”)Toast.makeText(this,ans.get(0),Toast.LENGTH_SHORT.show()

public类MainActivity扩展了AppCompatActivity{
公共名单基站;
公开名单;
字串=”;
字符串checkStr;
编辑文本;
私有静态最终int[]btn\U id={
R.id.btn1,
R.id.btn2,
R.id.btn3,
R.id.btn4,
R.id.btn5,
R.id.btn6,
R.id.btn7,
R.id.btn8
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btns=新的ArrayList();
ans=新的ArrayList();
text=findviewbyd(R.id.txt);
text.setEnabled(false);
填写答案();
对于(int i=0;i

}

您必须将字符串值与相等值进行比较

ans[i]。等于(“ABC”)


谢谢,行得通。但是为什么“==”不起作用呢?那是因为.equals比较字符串的值,并且==检查两个对象在内存中是否有相同的值。请看一看字符串函数,如.equalsIgnoreCase()。@Ordec如果我能帮助您,您应该将我的答案向上投票,并在左侧检查是否正确
public class MainActivity extends AppCompatActivity {
public List<Button> btns;
public List<String> ans;
String word = "";
String checkStr;
EditText text;
private static final int[] btn_id = {
        R.id.btn1,
        R.id.btn2,
        R.id.btn3,
        R.id.btn4,
        R.id.btn5,
        R.id.btn6,
        R.id.btn7,
        R.id.btn8
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btns = new ArrayList<Button>();
    ans = new ArrayList<String>();
    text = findViewById(R.id.txt);
    text.setEnabled(false);
    fillAnswers();

    for (int i = 0; i < btn_id.length; i++){
        Button b = findViewById(btn_id[i]);
        btns.add(b);
    }
}

public void fillAnswers(){
    ans.add("ERATO");
    ans.add("MARI");
    ans.add("AIR");
}

public void onClick(View v){
    Button b = (Button)v;
    char str = b.getText().charAt(0);
    addToString(str);
    text.setText(word);
    b.setEnabled(false);
   // Toast.makeText(this, word, Toast.LENGTH_SHORT).show();
}

public void okClick(View v){

    //Toast.makeText(this, word, Toast.LENGTH_SHORT).show();
    if (word == "ERATO") Toast.makeText(this, ans.get(0), Toast.LENGTH_SHORT).show();
  /*  for (int i = 0; i < 3; i++){
       // Toast.makeText(this, word, Toast.LENGTH_SHORT).show();

        if (checkStr == ans.get(i)){
            Toast.makeText(this, word, Toast.LENGTH_SHORT).show();
        }
    }*/

    word = "";
    text.setText(word);
    for (int i = 0; i < btn_id.length; i++){
        Button b = findViewById(btn_id[i]);
        b.setEnabled(true);
    }
}

public void addToString(char s){
    word += s;
}
if (word.equals("ERATO")) Toast.makeText(this, ans.get(0), Toast.LENGTH_SHORT).show();