2012-12-30 4 views
0

if 성안시 내 Android 앱이 다운되고 오류를 찾을 수 없습니다.Android 문자열 비교, 하위 문자열

여기 내 코드 스 니펫이 있습니다. 어떻게 해결할 수 있습니까?

public String formatResult(String inVal) { 

     String tmp = inVal.substring(inVal.length() - 2, inVal.length()); 

     if (tmp.equals(".0") == true){ 

      return inVal.substring(inVal.length(),inVal.length()-2); 
     } else { 

      return inVal; 
     } 
    } 
+1

'== true'가 필요하지 않습니다.'.equals'은 이미 그렇게합니다. –

+2

오류 메시지가 무엇입니까? – NimChimpsky

+0

충돌을 파악하려면 항상 충돌 로그를 표시하십시오. – keno

답변

1

"inVal"은 2 자보다 짧을 수 있습니다.

if (tmp.equals(".0") == true) 

에 :

if (tmp.equals(".0")){ 

또 다른 것은이 프로젝트를 디버그 및 inval이를보고, 어떤 경우에 inval이 당신은 변경할 수 있습니다 이상 2

경우 제어 할 경우 명령문 넣어 , 당신은 정말 반환 할 않습니다

inVal.substring(inVal.length(),inVal.length()-2); 

을하거나 반환 할 :

inVal.substring(inVal.length()-2, inVal.length()); 

EndIndex는 StartIndex보다 작을 수 없습니다. 처음부터 끝까지 시작하려는 경우 :

string a; 
for(int i = inVal.length; i>=inVal.length-2; i--) { 
    a += inVal.charAt(i); 
} 

이렇게하면됩니다.

+0

안녕하세요, return inVal.substring (0, inVal.length() - 2);을 원합니다. 감사 – fillibuster

1

inVal.substring(inVal.length(),inVal.length()-2);

매우 유효하지 가입일 :

public String substring(int beginIndex, 
         int endIndex) 

경우 IndexOutOfBoundsException - beginIndex의가 부의 경우, 또는 endIndex에이 String 객체의 길이보다 큰 경우, 혹은 beginIndex의보다 큰 경우 endIndex.

0
String a = editboxa.getText().toString(); 
String b = editboxb.getText().toString(); 
if(a.equals(b)) 
    //do something 
else 
    //do something