Foros del Web » Programación para mayores de 30 ;) » Java »

duda basica java, arreglo o string dato

Estas en el tema de duda basica java, arreglo o string dato en el foro de Java en Foros del Web. hola una pregunta, basica-tonta. si en una variable quiero almacenar una frase. como la asigno... en java. no era, que, en java una cadena, era ...
  #1 (permalink)  
Antiguo 30/10/2013, 13:58
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 2 meses
Puntos: 3
duda basica java, arreglo o string dato

hola una pregunta, basica-tonta.
si en una variable quiero almacenar una frase. como la asigno... en java.

no era, que, en java una cadena, era un vector de char, como el lenguaje C?

pero ahora veo que hay un tipo de dato llamado string, que ya los guarda como en otro lenguaje llamado php.javascript...

osea digo que string es un tipo de dato? como int=? float

no es una array de char?
  #2 (permalink)  
Antiguo 30/10/2013, 14:52
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: duda basica java, arreglo o string dato

String extrictamente no es un tipo de dato, String es una clase dentro del paquete java.lang que hereda de la clase padre Object. Esta clase se utiliza generalmente para manipular cadenas de caracteres.

Aunque tu en el código puedas ver :
Código Java:
Ver original
  1. String str = "abc";
realmente se esta ejecutando algo como esto:
Código Java:
Ver original
  1. String str = new String("abc");
Es decir, es una clase, como otra cualquiera, con constructor incluido ..etc

En java, una cadena es una cadena, y un array de char otra distinta, eso no quiere decir, que por ejemplo cuando llamas al metodo toUpperCase() de la clase String, el internamente recorra la cadena, caracter a caracter como si de un array de char se tratara, para transformar en mayúsculas todos los caracteres.

Para finalizar comentar que la clase String es inmutable, es decir, no se puede modificar el objeto String, sino que crea nuevas instancias que lo reemplazan, por ejemplo:

Código Java:
Ver original
  1. String cadena = "mi cadena";
  2. cadena = cadena + " concateno";
  3. cadena = cadena + " otro mas";

En este caso no se modifica el objeto cadena, sino que se crean nuevos objetos String que reemplazan al anterior, internamente hace algo similar a lo siguiente...

Código Java:
Ver original
  1. String cadena = new String("mi cadena");
  2. cadena = new String ("mi cadena concateno");
  3. cadena = new String ("mi cadena concateno otro mas");

realmente en ningún momento se modifica el objeto cadena, sino que es reemplazado por otro nuevo, es decir se ha generado un nuevo objeto por cada concatenación, esto es sumamente costoso, por lo que siempre es recomendable utilizar las clases StringBuilder y StringBuffer para la concatenación de objetos String.

Es más, creo que a partir de la versión 8 de java, tienen pensado que el compilador no permita concatenar objetos String utilizando el operador "+", yo recomiendo desde aquí utilizar el método append() de las clases StringBuilder y StringBuffer.


Espero poder haberte ayudado.

Saludos.
  #3 (permalink)  
Antiguo 31/10/2013, 05:11
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: duda basica java, arreglo o string dato

En concatenaciones pequeñas es indeferente qué método uses, en grandes (como un bucle) es preferible el StringBuilder.

http://blog.eyallupu.com/2010/09/und...a-strings.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 31/10/2013, 08:49
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 2 meses
Puntos: 3
Respuesta: duda basica java, arreglo o string dato

yo me acuerdo que en lenguaje c. para tener una frase, se guardaba en un array de char, muy trucho y feo...
despues no se de donde salia... un tipo string y creo que en una variable colocaba una frase sin problemas...

creo que antes de eso, llamaba a una libreria con include...

--------

entonces en java, cuando se guardan palabras en variables se usa STRING,,
nada de array de char, ni creoq ue se use, .no ?
  #5 (permalink)  
Antiguo 04/11/2013, 22:36
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: duda basica java, arreglo o string dato

Hola,

Cita:
Iniciado por Xerelo Ver Mensaje
En concatenaciones pequeñas es indeferente qué método uses, en grandes (como un bucle) es preferible el StringBuilder.
Adicionalmente hay que tener en cuenta que StringBuffer está sincronizado, y por lo tanto va a existir una penalización en la velocidad del código si no es necesario multi-threading.

Cita:
Iniciado por aldo_rengo Ver Mensaje
yo me acuerdo que en lenguaje c. para tener una frase, se guardaba en un array de char, muy trucho y feo...
despues no se de donde salia... un tipo string y creo que en una variable colocaba una frase sin problemas...

creo que antes de eso, llamaba a una libreria con include...

--------

entonces en java, cuando se guardan palabras en variables se usa STRING,,
nada de array de char, ni creoq ue se use, .no ?
En el lenguaje C se usa un puntero a una dirección de memoria (que es parecido a un array) y de allí hasta que encuentra un NULL (char 0h). El tipo string es de C++ (STL) y es un objeto similiar al String de Java (mucho mas simple).

En Java se usa el tipo de dato String para almacenar una lista de caracteres. Aunque siempre cuentas con clases auxiliares y métodos para componer o descomponer Strings, como por ejemplo, StringBuilder, StringBuffer, String.toCharArray(), etc.

Saludos,

Etiquetas: arreglo, dato, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:05.