String name1 = editText1.getText().toString();
String name2 = editText2.getText().toString();
Aby porównać particul ar char
s w swoim łańcuchu, możesz użyć metody char charAt(int)
również z typu String
. Oto przykład użycia:
if(name1.charAt(2) == name2.charAt(0)){
// Do your stuff
}
Trzeba pamiętać, że char charAt(int)
jest od zera, więc 0 jest pierwszym, 1 sekundy i tak dalej. I w tym przykładzie widać, że porównałem dwa znaki, tak jakbym porównał je z - z prostym ==
.
Porównywanie całych String
s:
// This returns true if Strings are equal:
name1.contentEquals(name2);
// This returns 0 if Strings are equal:
name1.compareTo(name2);
aby to sprawa niewrażliwe można użyć metody z String
typu toLowerCase()
obu String
s.
name1.equalsIgnoreCase(name2);
czyli
name1.toLowerCase().contentEquals(name2.toLowerCase());
charAt() jest zdefiniowany w CharSequence, a byłoby mniej wydajne przekonwertowanie ich na Strings najpierw - być może nawet niemożliwe (nie ma ograniczeń na CharSequence, aby zasugerować, że wszystkie postacie muszą być w stanie zmieścić się w pamięci) – Jules
I sekundę odpowiedzi @ Jules.Jeśli masz zamiar porównać CharSequences powinieneś zaimplementować coś wzdłuż linii java.util.Arrays.equals (char [], ch ar []) i zachowuj je jako CharSequences i użyj charAt, gdy zobaczysz dostęp do tablicy. http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Arrays.java#Arrays.equals%28char%5B%5D%2Cchar%5B% 5D% 29 – LINEMAN78