2012-12-30 222 views
0

我的Android應用程序在if聲明中崩潰,我無法找到該錯誤。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個字符。調試該項目,看inVal,在任何情況下把if語句來控制,如果inVal長於2

您可以更改:

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

到:

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

另一件事是,你真的想回:

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

,或者你想返回:

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

EndIndex不能小於StartIndex。如果你想開始從頭到尾2:

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

這應該工作。

+0

嗨,我想返回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