Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2008, 06:45
tapion
 
Fecha de Ingreso: marzo-2007
Mensajes: 28
Antigüedad: 17 años, 2 meses
Puntos: 0
expresion regular

Muy buenas. Tengo el siguiente código Java (Que llamo desde una jsp, para devolver el resultado a la jsp):

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(Unk nown 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!