-2

Hi I was just using stringbuilder to obtain certain part of the string using substring(int start, int end).. but I'm having this error

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)

And this is how i simply implement:

StringBuilder str = new StringBuilder(phoneNumber);
          String fourth = str.substring(0, 4);

I just want to obtain the first 4 character of my phoneNumber string

Shamim Ahmmed
  • 8,265
  • 6
  • 25
  • 36
RieJack
  • 51
  • 2
  • 10

2 Answers2

1

Are you using the substring() method but you no has length lower than 4 ,so if you want to get only four number use the following code.

Ex:

   class  SubString
      {
public static void main(String[] args) 
{
StringBuilder str = new StringBuilder(phoneNumber);
    if(str.length()>4){
    System.out.println(str.substring(0,4));
    }
     }
    }
Mohsin Shaikh
  • 494
  • 1
  • 4
  • 11
0

I just want to obtain the first 4 string of my phoneNumber string

But your number has length lower than 4. If you want to get first four numbers you need to add simple condition:

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

Don't forget that substring begins at the specified start and extends to the character at index end - 1.

Simon Dorociak
  • 33,374
  • 10
  • 68
  • 106