如何比较两个CharSequences中的字符

时间:2012-02-04 07:19:25

标签: java android string-comparison

我应该如何比较两个CharSequence的两个字符?

这是我的两个CharSequence

CharSequence name1 = fname.getText();
CharSequence name2 = sname.getText();

如果我尝试这样比较:

if(name1[i] == name2[j])

..它给了我错误。

6 个答案:

答案 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;