我应该如何比较两个CharSequence
的两个字符?
这是我的两个CharSequence
:
CharSequence name1 = fname.getText();
CharSequence name2 = sname.getText();
如果我尝试这样比较:
if(name1[i] == name2[j])
..它给了我错误。
答案 0 :(得分:6)
使用CharSequence.html#charAt(int)将char
置于指定位置。
然后,您可以将char
与==
关于问题中的代码,这将导致
if(name1.charAt(i) == name2.charAt(j))
答案 1 :(得分:5)
如果可能,请比较两个Strings
,
而不是ChracterSequence
比较,
String name1 = edtTextName1.getText().toString().trim();
String name2 = edtTextName2.getText().toString().trim();
if(name1.equals(name2))
{
Log.i("Result","True");
}
else
{
Log.i("Result","false");
}
答案 2 :(得分:4)
试试这个:
String name1 = fname.getText().toString();
String name2 = sname.getText().toString();
if(name1.equals(name2)){/* do something */}
答案 3 :(得分:4)
String name1 = editText1.getText().toString();
String name2 = editText2.getText().toString();
要比较字符串中的特定char
,您也可以使用char charAt(int)
类型的String
方法。以下是使用示例:
if(name1.charAt(2) == name2.charAt(0)){
// Do your stuff
}
你必须记住char charAt(int)
是从零开始的,所以0是第一个,1是第二个,依此类推。
在这个例子中,您可以看到我比较了两个字符,就像我将int
egers与简单的==
进行比较一样。
比较整个String
s:
// This returns true if Strings are equal:
name1.contentEquals(name2);
// This returns 0 if Strings are equal:
name1.compareTo(name2);
要使其不区分大小写,您可以在String
上使用toLowerCase()
类型String
中的方法。
name1.equalsIgnoreCase(name2);
或:
name1.toLowerCase().contentEquals(name2.toLowerCase());
答案 4 :(得分:1)
name1.toString().contentEquals(name2);
答案 5 :(得分:1)
仅供参考,自Java 11起,有一个新方法CharSequence.compare()。如果要检查两个字符序列是否相等,可以使用:
CharSequence.compare(name1, name2) == 0;