2012-02-04 4 views
9

CharSequence의 두 문자를 비교하는 방법은 무엇입니까? 나는이 같은 비교하려고하면두 CharSequence의 문자를 비교하는 방법

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

: 나에게 오류를 제공 가깝지만

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

내 두 CharSequence들입니다.

답변

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

이 particul을 비교하기 ar char 문자열에 메서드를 사용하면 String 유형에서도 사용할 수 있습니다. 여기에 예를 들어, 사용하는 것입니다 :

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

당신은 char charAt(int)임을 기억해야 제로 그래서 0, 첫 번째 1 등 두 번째입니다. 그리고이 예에서 나는 int egers -를 간단하게 ==과 비교하는 것처럼 두 개의 문자를 비교했다는 것을 알 수 있습니다.

비교 전체 String의 :

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

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

이 경우 만들려면 당신이 모두 String들에 String 유형 toLowerCase()에서 방법을 사용할 수 있습니다를 구분.

name1.equalsIgnoreCase(name2); 

나 :

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

charAt()는 CharSequence에 정의되어 있으므로 먼저 문자열로 변환하는 것이 효과적이지 않을 수 있습니다. CharSequence를 사용하여 그 안에있는 모든 문자가 메모리에 들어갈 수 있어야 함을 제안하십시오.) – Jules

+0

I 초 @Jules 응답 CharSequences를 비교하려면 java.util.Arrays.equals (char [], ch ar []) 그리고 CharSequences로 유지하고 배열 액세스를 볼 수있는 곳에 charAt를 사용하십시오. 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

가능하면

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

의 CharSequence가 발생합니다 문자를 읽을 수있는 순서입니다. 이 인터페이스는 많은 다른 종류의 문자 시퀀스에 대한 읽기 전용 액세스를 균일하게 제공합니다. 그래서이 두 가지를 비교해야한다면 루프를 사용하여 그 시퀀스의 각 문자를 살펴야합니다. 문자열에서 문자열을 변경하고 비교하는 것이 좋습니다. – user370305

+0

어떻게해야합니까? –

+0

그 의미는 무엇입니까? – user370305

4

이 시도, 두 Strings,

대신 ChracterSequence 비교 뭔가 같은 비교 :

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

문자열을 사용하지 않고 CharSequence를 문자열에 전달할 수도 없습니다. 어떻게 CharSequence 캠핑. 또한 전체 시퀀스가 ​​아닌 문자를 비교합니다. –

+0

CharSequence는 구체적인 클래스가 아닌 인터페이스입니다. 실제로는 CharSequence의 인스턴스를 생성 할 수 없습니다. http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/CharSequence.html 문자열이 필요합니다. 사용하지 않으려는 배열처럼 액세스 할 수 있습니다. 내장 된 equals 메서드 또는 StringBuffer는 CharSequence –

+0

의 실제 구현이므로 작동하지만 특정 문자를 비교할 수는 없습니다 ... –

1
name1.toString.contentEquals(name2); 
6

사용 CharSequence.html#charAt(int)가 지정된 위치에 char를 얻을. 그런 다음

==는 문제의 코드와 관련하여 char을 비교할 수 있습니다,이

if(name1.charAt(i) == name2.charAt(j)) 
관련 문제