如何比较两个CharSequences中的字符

Aru*_*boj 9 java android string-comparison

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

这是我的两个CharSequence:

CharSequence name1 = fname.getText();
CharSequence name2 = sname.getText();
Run Code Online (Sandbox Code Playgroud)

如果我尝试比较这样:

if(name1[i] == name2[j])
Run Code Online (Sandbox Code Playgroud)

..给了我错误.

Mic*_*zka 6

使用CharSequence.html#charAt(int)获取char 指定位置.然后,您可以比较char==

关于问题中的代码,这将导致

if(name1.charAt(i) == name2.charAt(j))
Run Code Online (Sandbox Code Playgroud)


use*_*305 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");
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ski 4

String name1 = editText1.getText().toString();
String name2 = editText2.getText().toString();
Run Code Online (Sandbox Code Playgroud)

要比较charString 中的特定值,您char charAt(int)也可以使用类型中的方法String。这是使用示例:

if(name1.charAt(2) == name2.charAt(0)){
   // Do your stuff
}
Run Code Online (Sandbox Code Playgroud)

你必须记住它char charAt(int)是从零开始的,所以 0 是第一个,1 是第二个,依此类推。在这个例子中,你可以看到我比较了两个字符,就像我比较integers一样 - 与 simple ==

比较整体String

// This returns true if Strings are equal:
name1.contentEquals(name2);    

// This returns 0 if Strings are equal:
name1.compareTo(name2);
Run Code Online (Sandbox Code Playgroud)

为了使其不区分大小写,您可以在两个 s 上使用Stringtype方法。toLowerCase()String

name1.equalsIgnoreCase(name2);
Run Code Online (Sandbox Code Playgroud)

或者:

name1.toLowerCase().contentEquals(name2.toLowerCase());
Run Code Online (Sandbox Code Playgroud)

  • charAt() 是在 CharSequence 中定义的,首先将它们转换为字符串的效率会较低 - 甚至可能不可能(CharSequence 没有限制表明其中的所有字符都需要能够适合内存) 。 (3认同)