elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  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 4,752 veces)
soser

Desconectado Desconectado

Mensajes: 44


...


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

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: 646


Divide y vencerás


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

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
  1. String cadena = new String("aaaSbc"); //Declaración de la cadena
  2. 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 pm »

 :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

bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


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

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

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


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

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
[JAVA] Sanitizador de palabras y verificador de RUT (Chile)
Java
carlitos.dll 3 12,005 Último mensaje 12 Octubre 2008, 00:32 am
por Pablo Videla
palabras
Java
andaluz 7 4,728 Último mensaje 14 Abril 2010, 11:21 am
por Leyer
'Jajaja' y 'XD' son las 'palabras' más repetidas en Facebook
Noticias
wolfbcn 0 1,557 Último mensaje 4 Agosto 2011, 22:08 pm
por wolfbcn
Una Imagen Vale Mas Que Mil Palabras.
Foro Libre
B€T€B€ 2 2,539 Último mensaje 12 Septiembre 2011, 15:07 pm
por Alien-Z
Obtener el porcentaje de oraciones con 1 palabra, 2 palabras, 3 palabras, etc.
Scripting
Wil630 5 3,856 Último mensaje 2 Noviembre 2015, 22:58 pm
por Wil630
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines