Java If语句只返回来自;否则";陈述
我试图制作一个脚本,将用户输入与另一个字符串进行比较。问题在于我的if语句。我没有得到错误,但它总是返回“else”语句中的结果。代码如下:Java If语句只返回来自;否则";陈述,java,android,if-statement,Java,Android,If Statement,我试图制作一个脚本,将用户输入与另一个字符串进行比较。问题在于我的if语句。我没有得到错误,但它总是返回“else”语句中的结果。代码如下: String [] lessons_titles = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","30","40","50","60","70","80","90"}; final TextView dan_vie
String [] lessons_titles = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","30","40","50","60","70","80","90"};
final TextView dan_view = (TextView)findViewById(R.id.DanText);
final int position = getIntent().getExtras().getInt("position");
final String title = lessons_titles[position];
check_b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String textField = check_text.getText().toString();
if (textField == title){
dan_view.setTextColor(Color.GREEN);
}
else {
dan_view.setTextColor(Color.RED);
}
}
});
比较字符串时,请使用equals()
方法而不是=
运算符。在String
的情况下,如果两个字符串的引用相同,则两个字符串将相等,要确定它们都引用同一点,必须使用equals()
方法=
运算符只能比较基元类型值,但字符串的实例是对象
所以,你的情况应该如下
if (textField.equals(title)){
dan_view.setTextColor(Color.GREEN);
} else {
dan_view.setTextColor(Color.RED);
}
比较字符串时,请使用equals()
方法而不是=
运算符。在String
的情况下,如果两个字符串的引用相同,则两个字符串将相等,要确定它们都引用同一点,必须使用equals()
方法=
运算符只能比较基元类型值,但字符串的实例是对象
所以,你的情况应该如下
if (textField.equals(title)){
dan_view.setTextColor(Color.GREEN);
} else {
dan_view.setTextColor(Color.RED);
}
您的错误如下:
if (textField == title){ //<--
您的错误如下:
if (textField == title){ //<--
=
用于测试两个字符串是否为同一对象;-参考平等
您希望检查该值,因此应使用.equals()
看看:
进一步澄清。=
用于测试两个字符串是否为同一对象;-参考平等
您希望检查该值,因此应使用.equals()
看看:
进一步澄清。使用此
if (textField.compareTo(title) == 0)
{
dan_view.setTextColor(Color.GREEN);
}
else {
dan_view.setTextColor(Color.RED);
}
用这个
if (textField.compareTo(title) == 0)
{
dan_view.setTextColor(Color.GREEN);
}
else {
dan_view.setTextColor(Color.RED);
}
“textField==title”使用==将检查它们是否完全相同,不仅是值,而且还存储在相同的内存位置
相反,尝试使用
if(textField.equals(title)){
这里显示了一个很好的示例,使用==将检查它们是否完全相同,不仅是值,而且还存储在相同的内存位置
相反,尝试使用
if(textField.equals(title)){
这里显示了一个很好的示例