-2

嗨,我只是使用 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 个字符

4

2 回答 2

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));
    }
     }
    }
于 2013-08-17T13:00:14.553 回答
0

我只想获取我的 phoneNumber 字符串的前 4 个字符串

但是您的号码的长度小于 4。如果您想获得前四个号码,您需要添加简单的条件:

if (str.length() > 4) {
   // do your work
}

不要忘记子字符串从指定的开始处开始并延伸到索引结束处的字符 - 1。

于 2013-08-17T12:55:51.260 回答