Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/10/2011, 09:25
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 5 meses
Puntos: 17
Respuesta: cambio de palabra de un texto

Como dice Xerelo, puedes usar contains y replace

ejemplo, reemplazar todas las coincidencias de mundo por world
Código JAVA:
Ver original
  1. String t = "Hola mundo en Java para todo el mundo";
  2.             if ( t.contains("mundo")  )
  3.             {
  4.                 System.out.println(  t.replaceAll("mundo","world")  );
  5.             }


Ahora, creo que las expresiones regulares te pueden ayudar más al tratar de buscar y reemplazar tokens (ya que pueden estar escritas de distintas formas)

ejemplo, normalizar el token "select" a SELECT (mira que dice SeLECT en el string query)
Código JAVA:
Ver original
  1. String query = "SeLECT id ,   title FrOm contents";
  2.             // Reemplazo de doble espacios
  3.             if ( query.contains("  ")  )
  4.             {
  5.                 query = query.replaceAll("  ","");
  6.             }
  7.             Pattern select_pt = Pattern.compile("((S|s){1}(E|e){1}(L|l){1}(E|e){1}(C|c){1}(T|t){1})");
  8.             Matcher select_mt = select_pt.matcher(query);
  9.             if ( select_mt.find() )
  10.             {
  11.                 query = query.replace(  select_mt.group(0) , "SELECT" );
  12.             }


Para finalizar, lo más formal, al tratar de realizar un compilador, es utilizar herramientas donde puedas ingresar tu gramatica en BNF, hacer un lexer, parser, etc. JFlex y Cup te pueden ayudar, eso sí, requieren un conocimiento un poco más avanzado de Java y tal vez sobre teoría de compiladores.


Saludos