繁体   English   中英

Android字符串比较,子字符串

[英]Android String comparison, substring

我的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;
         }
    }

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

因此不太有效:

public String substring(int beginIndex,
                        int endIndex)

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

“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);
}

这应该工作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM