本文介绍了如何在Android中解决StringIndexOutOfBoundsException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的logcat报告:
This is my logcat report:
java.lang.StringIndexOutOfBoundsException: length=0; regionStart=0; regionLength=2
at java.lang.String.startEndAndLength(String.java:583)
at java.lang.String.substring(String.java:1464)
at com.buzzador.profile.getValidPhoneNumber(profile.java:1966)
at com.buzzador.profile.setDataForServer(profile.java:1717)
at com.buzzador.profile$5.onClick(profile.java:236)
at android.view.View.performClick(View.java:4377)
at android.view.View$PerformClick.run(View.java:18044)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5306)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
我认为问题出在此功能中:
and i think the issue is in this function:
public String getValidPhoneNumber (String phoneNumber, String country)
{
String csValidPhoneNumber = "";
phoneNumber = getPhoneNumberWithoutReqularExpresions(phoneNumber);
phoneNumber = phoneNumber.replaceFirst ("^0*", "");
String csCountryCode = getCountryCode(country);
String csAppendedCode = phoneNumber.substring(0, csCountryCode.length());
if(csAppendedCode.equals(csCountryCode))
{
csValidPhoneNumber = "+" + phoneNumber;
return csValidPhoneNumber;
}
csValidPhoneNumber = "+" + csCountryCode + phoneNumber;
return csValidPhoneNumber;
}
推荐答案
您确定phoneNumber
不等于""
吗?您必须检查phoneNumber
的字符数是否大于csCountryCode.length()
.
Are you sure that phoneNumber
is not equal to ""
?You have to check that phoneNumber
have more chars than the csCountryCode.length()
.
String csAppendedCode = phoneNumber.length() > csCountryCode.length() ? phoneNumber.substring(0, csCountryCode.length()) : "";
这篇关于如何在Android中解决StringIndexOutOfBoundsException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!