0

我的 Android 应用程序在if声明期间崩溃,我找不到错误。

这是我的代码片段,我该如何解决?

    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;
         }
    }
4

3 回答 3

1

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

不是很有效,因为:

public String substring(int beginIndex,
                        int endIndex)

IndexOutOfBoundsException - 如果 beginIndex 为负数,或者 endIndex 大于此 String 对象的长度,或者beginIndex 大于 endIndex。

于 2012-12-30T20:40:00.923 回答
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);
}

这应该有效。

于 2012-12-30T20:42:09.487 回答
0
String a = editboxa.getText().toString();
String b = editboxb.getText().toString();
if(a.equals(b))
    //do something
else
    //do something
于 2012-12-30T20:44:50.333 回答