Tengo un problema con el siguiente fragmento de código. Estoy tratando de hacer coincidir una cuerda. Cuando tengo una coincidencia, todo funciona perfectamente. Cuando no encuentra una coincidencia, lanza una excepción y provoca el cierre de una fuerza.Fuerza Cerrar en la expresión regular! Coincide
Fragmento de código
private void validatePhoneNumberFormat(String t){
Pattern p = Pattern.compile("^Match this exactly!$");
Matcher m = p.matcher(t);
m.find();
if (m.group(0) != ""){
this.myString = m.group(0);
this.setIsValid(true);
this.setStatus(0);
} else {
this.myString = "Invalid Input String";
this.setIsValid(false);
this.setStatus(99); // String parsing error
}
}
LogCat
02-17 14:12:10.562: WARN/dalvikvm(3854): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): FATAL EXCEPTION: main
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): java.lang.IllegalStateException: No successful match so far
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at java.util.regex.Matcher.ensureMatch(Matcher.java:607)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at java.util.regex.Matcher.group(Matcher.java:358)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at com.android.example.RegExTest.MyList.validateMyStringFormat(MyList.java:47)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at com.android.example.RegExTest.MyList.<init>(MyList.java:15)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at com.android.example.RegExTest.DataManagerActivity.readInputFile(DataManagerActivity.java:128)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at com.android.example.RegExTest.DataManagerActivity$2.onClick(DataManagerActivity.java:77)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at android.view.View.performClick(View.java:2485)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at android.view.View$PerformClick.run(View.java:9080)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at android.os.Handler.handleCallback(Handler.java:587)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at android.os.Handler.dispatchMessage(Handler.java:92)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at android.os.Looper.loop(Looper.java:123)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at android.app.ActivityThread.main(ActivityThread.java:3647)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at java.lang.reflect.Method.invokeNative(Native Method)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at java.lang.reflect.Method.invoke(Method.java:507)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-17 14:12:11.322: ERROR/AndroidRuntime(3854): at dalvik.system.NativeStart.main(Native Method)
02-17 14:12:11.402: WARN/ActivityManager(62): Force finishing activity com.android.example.RegExTest/.DataManagerActivity
Funcionado perfectamente. Gracias por ayudar a un nOOb. –