2011-10-11 6 views
0

문자열 입력 비교를 기반으로 출력을 변경하는 응용 프로그램에서 작업하고 있습니다. 그러나 대부분의 비교 모드는 문자열에 적용 할 수 없다는 것을 알고 있습니다. 다음으로 I는 언급하고있다 :안드로이드에서 문자열 비교를 구현합니다

보다
  1. 이하 (<)
  2. 에 이하와 같음 (< =)
  3. 보다 큰 (>)
  4. 이상과 같음 (> =) 동일
  5. (==)

사람에 대해 알고 수있는 해결 방법이 있습니까? 나는 어떤 조언을 주셔서 감사하겠습니다.

감사합니다.

[RE-EDIT]를

내 어플리케이션은 다양한 필드를 포함하는 형태이다. 예를 들어 하나의 텍스트 필드에 값을 입력하면 그 값은 위에 나열된 조건에 따라 목표 값과 비교됩니다. 결과에 따라 실행을 진행할 수 있습니다.

나는 이것이 약간의 빛을 비춰주기를 바란다.

+0

당신이 숫자을 비교 한 방법과 비교할 문자열의 어떤 종류 알고 좋은 것? – Mannaz

+0

이들은 모두 숫자 데이터 값 비교 메소드를위한 것으로 문자열 데이터 유형에는 사용할 수 없습니다. 그리고 이러한 문자열에 대한 비교 방법이 없다고 생각합니다. – user370305

+0

다음 내 대답을 참조하십시오. 몇 가지 메소드를 나열하여 String을 nummeric 값으로 구문 분석했습니다. – Mannaz

답변

0

숫자 값이 포함 된 문자열이있는 경우 숫자를 먼저 구문 분석해야합니다. 즉이 : 간단한 등호에 대한

try { 
    long number1 = Long.parseLong(myString1); 
    long number2 = Long.parseLong(myString2); 
    if(number1 <= number2) { 
    // dosomething 
    } 
} catch(NumberFormatException e) { 
    Log.e(TAG, "can not parse string to long",e); 
} 

을 비교 한 String.equals 방법이있다 :

if(myString1.equals(myString2)) { 
    // dosomething 
+0

Mannaz 감사하지만 내 문자열은 순수한 문자열 값이고 숫자 값은 포함하지 않습니다. – user788511

1

비교 작업을 수행해야합니까? String의 compareTo() 메소드는 트릭을 수행 할 수 있습니다.

3

당신은 (<)를 음수 정수를 반환 String.compareTo(String)을 사용할 수 있습니다 제로 (=) 또는 양수 (>).

그래서 그것을 사용

String a="myWord"; 
if(a.compareTo(another_string) <0){ 
    //a is strictly < to another_string 
} 
else if (a.compareTo(another_string) == 0){ 
    //a equals to another_string 
} 
else{ 
    // a is strictly > than another_string 
} 
관련 문제