Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 25-nov-2005, 13:12   #1 (permalink)
lalogrosz tiene algunos puntos positivos de karma
 
Avatar de lalogrosz
 
Fecha de Ingreso: noviembre-2002
Ubicación: Capital Federal
Mensajes: 310
Enviar un mensaje por MSN a lalogrosz
Simular el replaceAll

Hola. Estoy con la plataforma J2SE 1.3.1 que no tiene el metodo replaceAll, y no puedo encontrar en ningun lado otra manera de hacerlo.

Alguien tiene armado algo que simule este metodo?
Lo necesito con urgencia.

Gracias.
__________________
"Vivir....solo cuesta Vida"
lalogrosz está desconectado   Responder Citando
Antiguo 25-nov-2005, 13:31   #2 (permalink)
lalogrosz tiene algunos puntos positivos de karma
 
Avatar de lalogrosz
 
Fecha de Ingreso: noviembre-2002
Ubicación: Capital Federal
Mensajes: 310
Enviar un mensaje por MSN a lalogrosz
Ya lo encontre.
Lo dejo para que lo usen.

Código:
protected String replaceAll(String object, String target, String replacement, int curIndex) { 
	  int indexOfMatch = object.indexOf(target, curIndex); 
	  if (indexOfMatch < curIndex) { 
	      return object; 
	  } 
	  String prefix = ""; 
	  if (indexOfMatch > 0) { 
	      prefix = object.substring(0, indexOfMatch); 
	  } 
	  String tail = object.substring(indexOfMatch + target.length()); 
	  String newObject = prefix + replacement + tail; 
	  return replaceAll(newObject, target, replacement, indexOfMatch + replacement.length()); 
}
__________________
"Vivir....solo cuesta Vida"
lalogrosz está desconectado   Responder Citando
Antiguo 25-nov-2005, 14:47   #3 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.615
El metodo puede que funcione, pero es bastante deficiente en cuanto al uso de Strings. Aparte de que hace una comprobacion "if (indexOfMatch > 0)" y si no lo encuentra el resultado es "-1", así que si da un "0" lo ha encontrado al principio de la palabra.... no se, no suena muy fiable.
GreenEyed está desconectado   Responder Citando
Antiguo 25-nov-2005, 14:49   #4 (permalink)
lalogrosz tiene algunos puntos positivos de karma
 
Avatar de lalogrosz
 
Fecha de Ingreso: noviembre-2002
Ubicación: Capital Federal
Mensajes: 310
Enviar un mensaje por MSN a lalogrosz
Asi es como implementa el metodo realmente la plataforma.

Igualmente no se cual es el problema del -1, ya que para encontrar una palabra utiliza el indexof y tiene que devolver 0 por si encuentra en la primera posicion.
__________________
"Vivir....solo cuesta Vida"
lalogrosz está desconectado   Responder Citando
Antiguo 25-nov-2005, 14:57   #5 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.615
Personalmente me gusta más usar StringBuffer, tal que así:
Código:
  static String replace(String original, String replaced, String replacement)
  {
    StringBuffer theSB = new StringBuffer(original);
    int baseIndex = 0;
    int badSignIndex = 0;
    while ((badSignIndex = original.indexOf(replaced, badSignIndex)) != -1)
    {
      theSB.delete(badSignIndex + baseIndex, badSignIndex + baseIndex
          + replaced.length());
      theSB.insert(badSignIndex + baseIndex, replacement);
      baseIndex = baseIndex + replacement.length() - replaced.length();
      badSignIndex = badSignIndex + replaced.length();
    }
    return theSB.toString();
  }
GreenEyed está desconectado   Responder Citando
Antiguo 25-nov-2005, 15:01   #6 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.615
Ese no puede ser el codigo del JDK, puesto que el metodo del JDK recibe como parametro una expresión regular y ese metodo no usa para nada expresiones regulares.
Además de que si así fuera eso habría que fusilar al programador de Sun que introdujo semejante engendro en el JDK oficial
GreenEyed está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:17.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96