Jump to content

necesito ayuda


Recommended Posts

ya, para no quedar como el malo de la película. Te doy un ejemplo

 

String cadena_original = "Hay dos casas de color blanco y dos casas de color verde";
String cadena_nueva = cadena_original.replace("casas" , "vehículos");
System.out.println(cadena_nueva);

// en la pantalla se visualiza:
// "Hay dos vehículos de color blanco y dos casas de color verde"
// (sin comillas)

 

puse a propósito dos veces la palabra "casa" para que veas que solo se cambia la primera que encuentra leyendo de izquierda a derecha

 

EDITO: olvidé decir que no es obligatorio crear la variable "cadena_nueva" ya que al invocar el método replace se sobreescribe el valor del string original.

Edited by xchanox
Link to comment
Share on other sites

ya, para no quedar como el malo de la película. Te doy un ejemplo

 

String cadena_original = "Hay dos casas de color blanco y dos casas de color verde";
String cadena_nueva = cadena_original.replace("casas" , "vehículos");
System.out.println(cadena_nueva);

// en la pantalla se visualiza:
// "Hay dos vehículos de color blanco y dos casas de color verde"
// (sin comillas)

 

puse a propósito dos veces la palabra "casa" para que veas que solo se cambia la primera que encuentra leyendo de izquierda a derecha

 

EDITO: olvidé decir que no es obligatorio crear la variable "cadena_nueva" ya que al invocar el método replace se sobreescribe el valor del string original.

 

:blink: :blink: :blink:

 

Estimado...

 

Si es necesario crear la nueva variable... ya que el Objeto String se concidera "inmutable", cada accion que se realiza sobre un String "genera un nuevo String"...

 

Y también en realidad reemplaza Todas las Ocurrencias...

 

:banana: :banana:

 

Link to comment
Share on other sites

ya, para no quedar como el malo de la película. Te doy un ejemplo

 

String cadena_original = "Hay dos casas de color blanco y dos casas de color verde";
String cadena_nueva = cadena_original.replace("casas" , "vehículos");
System.out.println(cadena_nueva);

// en la pantalla se visualiza:
// "Hay dos vehículos de color blanco y dos casas de color verde"
// (sin comillas)

 

puse a propósito dos veces la palabra "casa" para que veas que solo se cambia la primera que encuentra leyendo de izquierda a derecha

 

EDITO: olvidé decir que no es obligatorio crear la variable "cadena_nueva" ya que al invocar el método replace se sobreescribe el valor del string original.

 

:blink: :blink: :blink:

 

Estimado...

 

Si es necesario crear la nueva variable... ya que el Objeto String se concidera "inmutable", cada accion que se realiza sobre un String "genera un nuevo String"...

 

Y también en realidad reemplaza Todas las Ocurrencias...

 

:banana: :banana:

 

Entonces CON MAYOR RAZON no es necesario crear otra variable para ese propósito, yo trabajo haciendo software para dispositivos moviles y este tipo de detalles son críticos cuando tienes pocos recursos disponibles, ya que hacen la diferencia entre un software que corre fluido y un software que corre lento.

 

Quizá no se entendío lo que quise decir con no crear una nueva variable, quise decir lo siguiente

 

 

            
  String cadena_original = "Hay dos casas de color blanco y dos casas de color verde";
  cadena_original = cadena_original.replace("casas" , 'vehiculos');
  System.out.println(cadena_original);

 

de todas formas lo compilé y probé de las dos maneras y funciona idéntico, te invito a probar y decirme, no vaya a ser que yo tenga una versión no estándar de java y no me haya dado cuenta, nunca se sabe.

 

Link to comment
Share on other sites

me pueden dar un ejemplo de

 

replace(substring_a_buscar,nuevoStr)

 

se que es para cambiar el valor que le asigne a un string

pero no se como hacer el ejemplo

:(

 

 

es para la carpeta de final de semestre del duoc?????

Link to comment
Share on other sites

ya, para no quedar como el malo de la película. Te doy un ejemplo

 

String cadena_original = "Hay dos casas de color blanco y dos casas de color verde";
String cadena_nueva = cadena_original.replace("casas" , "vehículos");
System.out.println(cadena_nueva);

// en la pantalla se visualiza:
// "Hay dos vehículos de color blanco y dos casas de color verde"
// (sin comillas)

 

puse a propósito dos veces la palabra "casa" para que veas que solo se cambia la primera que encuentra leyendo de izquierda a derecha

 

EDITO: olvidé decir que no es obligatorio crear la variable "cadena_nueva" ya que al invocar el método replace se sobreescribe el valor del string original.

 

:blink: :blink: :blink:

 

Estimado...

 

Si es necesario crear la nueva variable... ya que el Objeto String se concidera "inmutable", cada accion que se realiza sobre un String "genera un nuevo String"...

 

Y también en realidad reemplaza Todas las Ocurrencias...

 

:banana: :banana:

 

Entonces CON MAYOR RAZON no es necesario crear otra variable para ese propósito, yo trabajo haciendo software para dispositivos moviles y este tipo de detalles son críticos cuando tienes pocos recursos disponibles, ya que hacen la diferencia entre un software que corre fluido y un software que corre lento.

 

Quizá no se entendío lo que quise decir con no crear una nueva variable, quise decir lo siguiente

 

 

            
  String cadena_original = "Hay dos casas de color blanco y dos casas de color verde";
  cadena_original = cadena_original.replace("casas" , 'vehiculos');
  System.out.println(cadena_original);

 

de todas formas lo compilé y probé de las dos maneras y funciona idéntico, te invito a probar y decirme, no vaya a ser que yo tenga una versión no estándar de java y no me haya dado cuenta, nunca se sabe.

 

:blink: :blink: :blink:

 

Estimado...

 

Al parecer leí muy rápido tu respuesta e interprete mal la parte en que dijiste...

"... al invocar el método replace se sobreescribe el valor del string original"

 

Cuando tu colocas

            
  cadena_original = cadena_original.replace("casas" , 'vehiculos');

 

lo que haces es "simular" un cambio de estado en el objeto (se actualiza la variable), pero lo que en verdad sucede es que creas un nuevo objeto string y lo asignas a la misma variabla (perdiendo el string anterior y se le lleva el "recolector de basura" etc. etc. etc...)

 

Pero para defender mi punto, quiero decir que si...

            
  String cadena_original = "Chilecomparte";
  cadena_original.replace("e" , '_E_'); // esto genera un NUEVO String: "Chil_E_compart_E_"... ...pero se pierde por que no se asigna...
  System.out.println(cadena_original); // imprime cadena orignal (sin cambios) : Chilecomparte

 

 

:paco: Nótese que se "reemplazan" todas las ocurrencias, no solo la primera...

 

En fin...

 

:banana: :banana: :banana:

:bravo: :bravo: :bravo:

Link to comment
Share on other sites

jajaja problema de palabras, quizá no me expresé bien. Me refería a la variable String y no al objeto mismo ni su posición en la memoria ram. Al final en este caso lo que nos importa es la variable, dejemosle el colector de basura a la maquina virtual.

 

y que dijo el creador del tema? vio la respuesta y se mandó a cambiar?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...