Paw*_*nr1 7 java string android
可能重复:
Java String.equals与==
我知道这是一个愚蠢的问题,但为什么这段代码不起作用.
boolean correct = "SampleText" == ((EditText)findViewById(R.id.editText1)).getText().toString();
if(correct) ((TextView)findViewById(R.id.textView1)).setText("correct!");
else ((TextView)findViewById(R.id.textView1)).setText("uncorrect!");
Run Code Online (Sandbox Code Playgroud)
关键是要检查"editText1"的内容是否等于"Sample Text"
Ósc*_*pez 26
在Java中,两个字符串(和一般,两个对象)必须使用相比较equals(),没有==.该==操作员检查身份(意思是:如果测试两个对象在内存中完全一样),而该方法equals()测试两个对象相等(意思是:如果测试两个对象具有相同的值),不管他们是两个不同的对象.你几乎总是对平等感兴趣,而不是对身份感兴趣.
要修复代码,请执行以下操作:
String str = ((EditText)findViewById(R.id.editText1)).getText().toString();
boolean correct = "SampleText".equals(str);
Run Code Online (Sandbox Code Playgroud)
另请注意,将字符串文字首先放入调用中是一种很好的做法equals(),这样在第二个字符串的情况下你就是安全的null,避免了可能的情况NullPointerException.
| 归档时间: |
|
| 查看次数: |
35112 次 |
| 最近记录: |