Как сравнить символы в двух CharSequence - PullRequest
9 голосов
/ 04 февраля 2012

Как мне сравнить два символа двух CharSequence с?

Это мои два CharSequence с:

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

Если я попытаюсь сравнить так:

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

.. это дает мне ошибки.

Ответы [ 5 ]

6 голосов
/ 04 февраля 2012

Используйте CharSequence.html # charAt (int) , чтобы получить char в указанной позиции.Затем вы можете сравнить char с ==

Что касается вашего кода в вопросе, это приведет к

if(name1.charAt(i) == name2.charAt(j))
5 голосов
/ 04 февраля 2012

Если возможно, сравните два 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");
}
4 голосов
/ 04 февраля 2012
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 type toLowerCase() на обоих String s.

name1.equalsIgnoreCase(name2);

или:

name1.toLowerCase().contentEquals(name2.toLowerCase());
4 голосов
/ 04 февраля 2012

Попробуйте это:

String name1 = fname.getText().toString();
String name2 = sname.getText().toString();
if(name1.equals(name2)){/* do something */}
1 голос
/ 04 февраля 2012
name1.toString().contentEquals(name2);
...