2012-02-04 36 views

cevap

4
String name1 = editText1.getText().toString(); 
String name2 = editText2.getText().toString(); 

PARTIKUL karşılaştırmak String'inizde char s dizisini de String türünde char charAt(int) yöntemini kullanabilirsiniz. İşte örnek kullanımıdır:

if(name1.charAt(2) == name2.charAt(0)){ 
    // Do your stuff 
} 

Sen char charAt(int) olduğunu hatırlamak zorunda sıfır tabanlı böylece 0, ilk 1 böylece ikinci ve. Ve bu örnekte, int eger'leri karşılaştırmak gibi iki chars'u basit == ile karşılaştırdığımı görebilirsiniz.

karşılaştırılması bütün String s:

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

// This returns 0 if Strings are equal: 
name1.compareTo(name2); 

o durumda yapmak için, her iki String s tarihinde String tip toLowerCase() gelen yöntemini kullanabilirsiniz duyarsız.

name1.equalsIgnoreCase(name2); 

ya:

name1.toLowerCase().contentEquals(name2.toLowerCase()); 
+2

kullandığınız yeni kod içeren bir güncelleme gönderebilir miyim ve ilk Strings bunları dönüştürmek için daha az verimli olacaktır - hatta belki mümkün değildir (bir kısıtlama olmaması CharSequence üzerinde, içindeki tüm karakterlerin belleğe sığabilmesi gerektiğini önermek için) – Jules

+0

I second @Jules response. Eğer CharSequences'ı karşılaştırırsanız, java.util.Arrays.equals satırları boyunca bir şey uygulamanız gerekir. char [], ch ar []) ve bunları CharSequences olarak saklayın ve dizi erişimi gördüğünüz yerde charAt kullanın. 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

5

Mümkünse

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"); 
} 
+0

A CharSequence sonuçlanacak bir karakter okunabilir dizisidir. Bu arayüz, birçok farklı karakter dizisine tek tip, salt okunur erişim sağlar. Eğer bu ikisini karşılaştırmak zorunda kalırsanız, döngü kullanarak bu dizinin her bir karakterini gözden geçirmelisiniz, bu yüzden dizgede değiştirmek daha iyi ve karşılaştır. – user370305

+0

Nasıl yaparım? –

+0

Bu ne anlama geliyor? – user370305

4

bu deneyin, iki Strings,

yerine ChracterSequence karşılaştırma şey gibi karşılaştır:

String name1 = fname.getText().toString(); 
String name2 = sname.getText().toString(); 
if(name1.equals(name2)){/* do something */} 
+0

Dizeleri kullanmıyorum ve CharSequence'ı bir dizeye iletemezsiniz. CharSequence'ı nasıl kullanırım? Ve ayrıca tüm sıraları değil karakterleri karşılaştırıyorum. –

+0

CharSequence bir arayüzdür, somut bir sınıf değildir. Aslında bir CharSequence örneğini oluşturamazsınız. Buradaki belgelere bakın http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/CharSequence.html Bir String'e ihtiyacınız var (kullanmak istemiyorsanız bir dizi gibi erişebilirsiniz) Yerleşik eşittir yöntemi veya bir StringBuffer, çünkü bunlar CharSequence –

+0

gerçek somut uygulamalarıdır. Çalışıyor ancak belirli karakterleri karşılaştıramıyor ... –

1
name1.toString.contentEquals(name2); 
6

kullanın CharSequence.html#charAt(int) belirtilen bir pozisyonda char olsun. Ardından

== söz konusu kodunuzu İlişkin ile char karşılaştırabilirsiniz bu

if(name1.charAt(i) == name2.charAt(j)) 
İlgili konular