elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 23:48  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Sustituir palabras en palabras...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sustituir palabras en palabras...  (Leído 1,457 veces)
soser

Desconectado Desconectado

Mensajes: 44


...


Ver Perfil
Sustituir palabras en palabras...
« en: 16 Julio 2011, 08:59 »

Hola!
Mi duda es la siguiente:
Tengo una string "aaaSbc", y me gustaria sustituir desde donde esta la S por alguna otra string por ejemplo cambiar la S por "bcd", de modo que me quede una string "aaabcdbc"
Lo que hago es lo siguiente:
Código:
String original="aaaSbc";
String s="S";
String cambio="bcd";
int n=cambio.lenght()-s.lenght();
char[] nueva=new char[original.lenght()+n];
char[] orig=original.toCharArray();
char[] camb=cambio.toCharArray();
int z=0;
for(int h=0;h<i;h++)//i es la posicion donde esta S
{
     nueva[h]=orig[h];
     z=h;
}
z+=s.lenght();//lo hago con el fin de saber en que posicion seguirle en orig[]
int cont=0,h;
for(h=i;h<(i+cambio.lenght());h++)
{
      nueva[h]=cambio[cont];
      cont++;
}
for(h=h;h<nueva.lenght()<h++)
{
     nueva[h]=orig[z];
      z++;
}
String stg=new String(nueva);
El problema que tengo es que no agarra con todas los strings que ingreso, ya que la S puede estar al inicio,en medio o al final, ademas de que aveces igual se puede cambiar una combinacion de letras, por ejemplo que "aS" se cambie por "cc" de modo que quede "aaccbc" y de igual modo esa combinacion de letras puede estar al inicio,en medio o al final.
Espero su ayuda,comentarios,criticas...
Desde ya gracias ;D


En línea
Valkyr


Desconectado Desconectado

Mensajes: 632


Divide y vencerás


Ver Perfil
Re: Sustituir palabras en palabras...
« Respuesta #1 en: 16 Julio 2011, 14:49 »

Para hacer trabajos de sustitución de cadenas en Java es recomendable el uso de las clases Pattern y Matcher, pero sí lo que vas a hacer es algo tan sencillo como lo que expones, la propia clase String proporciona métodos de busqueda y sustitución.

Por ejemplo, sí tu quisieses sustituir una S (tal y como dices), en esta cadena: "aaaSbc" tendrías que hacer esto:

Código
String cadena = new String("aaaSbc"); //Declaración de la cadena
cadena = cadena.replaceFirst("S", "bcd"); //Método que reemplaza la primera ocurrencia

El método replaceFirst tiene como primer parámetro una expresión regular (si no conoces lo que es, busca por Internet porque la verdad es interesante), el segundo parámetro es la cadena que va a sustituir a la ocurrencia.

Existe otro método, replaceAll, que, como su propio nombre indica, reemplaza todas las ocurrencias que hay en la cadena.

De esta forma no tendrías que andar pensando en como realizarlo, ya que la propia clase te ofrece esta funcionalidad. Sí quisieses implementarlo por ti mismo, supongo que no tendría mucha complejidad en los casos más simples.

Saludos y si hay alguna duda, comenta  :).


En línea

soser

Desconectado Desconectado

Mensajes: 44


...


Ver Perfil
Re: Sustituir palabras en palabras...
« Respuesta #2 en: 16 Julio 2011, 22:59 »

 :o
Muchas gracias, he probado el metodo me has dicho y funciona muy bien...Si llego a tener algun otro problema lo comentare, de todos modos gracias :)
En línea
bjpenn

Desconectado Desconectado

Mensajes: 108



Ver Perfil WWW
Re: Sustituir palabras en palabras...
« Respuesta #3 en: 18 Julio 2011, 01:54 »

pero si quiero sustituir por todo un arreglo con otro arreglo???

por ejemplo
aabc

[a,a,b,c,f,g]    por [asd,a,r,d]
a sustituir por a
a sustituir por r
b sustituir por d
c sustituir por asd
salida:
ardasdfg

En línea

lo importante no es si haz caido si no es si puedes  levantarse
Valkyr


Desconectado Desconectado

Mensajes: 632


Divide y vencerás


Ver Perfil
Re: Sustituir palabras en palabras...
« Respuesta #4 en: 18 Julio 2011, 02:06 »

pero si quiero sustituir por todo un arreglo con otro arreglo???

por ejemplo
aabc

[a,a,b,c,f,g]    por [asd,a,r,d]
a sustituir por a
a sustituir por r
b sustituir por d
c sustituir por asd
salida:
ardasdfg



Es un poco lioso como lo has explicado. Sí te explicas un poco mejor intentaré ayudarte, sí es que puedo claro xD.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sin palabras......
Seguridad
[P h i l i p s] 1 490 Último mensaje 23 Marzo 2005, 14:01
por Jec
Sobran las palabras
Foro Libre
bebito0077 11 868 Último mensaje 16 Junio 2007, 20:42
por Zinc
WTF... Sin palabras
Foro Libre
BlackZeroX (Astaroth) 1 415 Último mensaje 24 Junio 2009, 14:08
por peib0l
palabras en c++
Programación C/C++
mpjm1989 0 478 Último mensaje 24 Noviembre 2009, 20:32
por mpjm1989
palabras
Java
andaluz 7 1,257 Último mensaje 14 Abril 2010, 11:21
por Leyer
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines