我的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;
}
}
答案 0 :(得分:1)
inVal.substring(inVal.length(),inVal.length()-2);
以后不是很有效:
public String substring(int beginIndex,
int endIndex)
IndexOutOfBoundsException - 如果beginIndex为负数,或者endIndex大于此String对象的长度,或 beginIndex大于endIndex。
答案 1 :(得分:1)
“inVal”可以短于2个字符。调试项目并观察inVal,无论如何,如果inVal长于2,则控制if语句来控制。
您可以更改:
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);
}
这应该有用。
答案 2 :(得分:0)
String a = editboxa.getText().toString();
String b = editboxb.getText().toString();
if(a.equals(b))
//do something
else
//do something