嗨,我只是使用stringbuilder使用substring(int start,int end)获取字符串的某些部分。但是我遇到了这个错误
08-17 20:27:40.737: E/AndroidRuntime(15313): Caused by: java.lang.StringIndexOutOfBoundsException: length=3; regionStart=0; regionLength=4 08-17 20:27:40.737: E/AndroidRuntime(15313): at java.lang.AbstractStringBuilder.startEndAndLength(AbstractStringBuilder.java:216) 08-17 20:27:40.737: E/AndroidRuntime(15313): at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:625) 08-17 20:27:40.737: E/AndroidRuntime(15313): at java.lang.StringBuilder.substring(StringBuilder.java:44) 08-17 20:27:40.737: E/AndroidRuntime(15313): at com.example.john.Contact.getAllCallLogs(Contact.java:196) 08-17 20:27:40.737: E/AndroidRuntime(15313): at com.example.john.Contact.onCreate(Contact.java:49) 08-17 20:27:40.737: E/AndroidRuntime(15313): at android.app.Activity.performCreate(Activity.java:4479) 08-17 20:27:40.737: E/AndroidRuntime(15313): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 08-17 20:27:40.737: E/AndroidRuntime(15313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041)
这就是我简单实现的方式:
StringBuilder str = new StringBuilder(phoneNumber); String fourth = str.substring(0, 4);
我只想获取我的phoneNumber字符串的前4个字符
我只想获取我的phoneNumber字符串的前4个字符串
但是您的数字长度小于4。如果要获取前四个数字,则需要添加简单条件:
if (str.length() > 4) { // do your work }
不要忘记子字符串从指定的开始处开始,一直延伸到索引结尾处的字符-1。