Java 如何在Android中正确比较字符串?
我正在用android做一个Anagram应用程序。我有一些问题,例如,我有文本为“A”、“B”、“C”的按钮。我的代码生成字符串“ABC”,我的ans[i]=“ABC”。但当我比较它们时,它返回的结果是错误的。请帮忙 有一些代码示例,我在中遇到了问题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{ 公共名单基站;
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();