您好我只是使用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个字符
答案 0 :(得分:1)
您使用的是substring()方法但是长度不低于4,所以如果您只想获得四个数字,请使用以下代码。
例如:
class SubString
{
public static void main(String[] args)
{
StringBuilder str = new StringBuilder(phoneNumber);
if(str.length()>4){
System.out.println(str.substring(0,4));
}
}
}
答案 1 :(得分:0)
我只想获取phoneNumber字符串的前4个字符串
但是你的号码长度低于4.如果你想获得前四个号码,你需要添加简单的条件:
if (str.length() > 4) {
// do your work
}
不要忘记子字符串从指定的开始处开始并延伸到索引结束处的字符-1。