5 java string android charsequence
我有一个将文本放入arrayList的类.然后它将所有变量变成CharSequences,当我尝试将变量比较为一个String,例如=="test"; 它在这里不起作用是我用来获取变量的代码
class Item {
String descs;
public Item (String descs){
this.descs = descs;
}
public CharSequence getDescs() {
return descs;
}
}
Run Code Online (Sandbox Code Playgroud)
这是将其与String进行比较的代码
if(p.getDescs().toString() == "trash"){
descsView.setVisibility(View.GONE);
}
else{
descsView.setText(p.getDescs());
}
Run Code Online (Sandbox Code Playgroud)
我知道p.getDescs()等于垃圾,因为当它设置descsView的文本时,它被设置为垃圾.为什么第一个if语句不起作用?
Rag*_*dan 16
使用.equals或.equalsIgnoreCase比较字符串
if(p.getDescs().toString().equals("trash"))
Run Code Online (Sandbox Code Playgroud)
还检查一下
阿CharSequence是一般类型,包括其它类型的像String,StringBuilder,SpannableString,和其他。如果要比较两个字符串,则可以使用.equals(请参阅此问题)。但是,如果将a String与a 进行比较CharSequence,则必须决定要比较的是什么,因为您可能会将a String与a StringBuilder或a SpannableString或其他东西进行比较。
如果您只想将a的内容(即文本)String与的内容进行比较CharSequence,而不必关心类型,则可以使用String.contentEquals()。
String myString = "hello";
CharSequence myCharSequence = new StringBuilder("hello");
boolean areEqual = myString.contentEquals(myCharSequence); // true
Run Code Online (Sandbox Code Playgroud)
如果您还想确保除内容之外的类型相同,请使用String.equals()。
String myString = "hello";
CharSequence myCharSequence = new StringBuilder("hello");
boolean areEqual = myString.equals(myCharSequence); // false
Run Code Online (Sandbox Code Playgroud)
这里还是相同的类型。
String myString = "hello";
CharSequence myCharSequence = "hello"; // String
boolean areEqual = myString.equals(myCharSequence); // true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13648 次 |
| 最近记录: |