-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

0

phoneNumber 文字列の最初の 4 文字列を取得したいだけです

しかし、数値の長さが 4 未満です。最初の 4 つの数値を取得する場合は、単純な条件を追加する必要があります。

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

部分文字列は指定された start から始まり、index end - 1 の文字まで続くことを忘れないでください。

于 2013-08-17T12:55:51.260 に答える