Java - expresion regular

   
Vista:

expresion regular

Publicado por Miguel (1 intervención) el 05/06/2008 23:31:06
Buenos dias. Tengo el siguiente código:

Pattern patron = Pattern.compile("(88)");
Matcher m = patron.matcher("asdf aaf 88 afe");
String s = m.replaceAll(getNumber("$0"));

donde:

public static String getNumber(String s) {
int a = Integer.parseInt(s) * 2;
return String.valueOf(a*2);
}

ante lo que tengo el siguiente error:

Exception in thread "main" java.lang.NumberFormatException: For input string: "$0"
at java.lang.NumberFormatException.forInputString(Unknown Source)


¿Alguien sabe porqué? Si pongo m.replaceAll(22) ¡FUNCIONA!. Si getNumber devuelve directamente el parámetro (s), también funciona. Pero no entiendo porqué no funciona ahora. Según la expresión regular, recibe siempre la cadena "88". De hecho, si getNumber devuelve directamente s, es eso lo que devuelve. Pero da el error anterior.

¿Alguien sabe porque?

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder