title: how to resolve StringIndexOutOfBoundsException in android
body: <p>This is my logcat report:</p>
  
  <pre><code>java.lang.StringIndexOutOfBoundsException: length=0; regionStart=0; regionLength=2
  at java.lang.String.startEndAndLength(String.java:583)
  at java.lang.String.substring(String.java:1464)
  at com.buzzador.profile.getValidPhoneNumber(profile.java:1966)
  at com.buzzador.profile.setDataForServer(profile.java:1717)
  at com.buzzador.profile$5.onClick(profile.java:236)
  at android.view.View.performClick(View.java:4377)
  at android.view.View$PerformClick.run(View.java:18044)
  at android.os.Handler.handleCallback(Handler.java:725)
  at android.os.Handler.dispatchMessage(Handler.java:92)
  at android.os.Looper.loop(Looper.java:137)
  at android.app.ActivityThread.main(ActivityThread.java:5306)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:511)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
  at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>and i think the issue is in this function:</p>
  
  <pre><code>public String getValidPhoneNumber (String phoneNumber, String country)
  {
      String csValidPhoneNumber = "";
  
      phoneNumber = getPhoneNumberWithoutReqularExpresions(phoneNumber);
      phoneNumber = phoneNumber.replaceFirst ("^0*", "");
  
      String csCountryCode = getCountryCode(country);
  
      String csAppendedCode = phoneNumber.substring(0, csCountryCode.length());
      if(csAppendedCode.equals(csCountryCode))
      {
          csValidPhoneNumber = "+" + phoneNumber;
          return csValidPhoneNumber;
      }
  
      csValidPhoneNumber = "+" + csCountryCode + phoneNumber;
  
      return csValidPhoneNumber;
  }
  </code></pre>