Вы находитесь на странице: 1из 6

Clase String

Un String en Java representa una cadena de caracteres no modificable.


Todos los literales de la forma "cualquier texto", es decir, literales entre comillas dobles,
que aparecen en un programa java se implementan como objetos de la clase String.
CREAR UN STRING
Se puede crear un String de varias formas, entre ellas:
- Utilizando una cadena de caracteres entre comillas:
String s1 = "abcdef";
- Utilizando operador de concatenación +con dos o más objetos String:
String s2 = s1 + "ghij"; //s2 contiene "abcdefghij"
String s3 = s1 + s2 + "klm"; //s3 contiene " abcdefabcdefghijklm"
Además la clase String proporciona varios constructores, entre ellos:

CONSTRUCTOR DESCRIPCIÓN
Constructor por defecto. El nuevo String toma el
valor ""
String() String s = new String(); //crea el string s vacío.
Equivale a: String s = "";
Crea un nuevo String, copiando el que recibe como
parámetro.
String(String s ) String s = "hola";
String s1 = new String(s);
//crea el String s1 y le copia el contenido de s
Crea un String y le asigna como valor los caracteres
contenidos en el array recibido como parámetro.
char [] a = {'a', 'b', 'c', 'd', 'e'};
String( char[] v )
String s = new String(a);
//crea String s con valor "abcde"

Crea un String y le asigna como valor los n caracteres


contenidos en el array recibido como parámetro, a
partir de la posición pos.
String(char[] v, int pos, int n)
char [] a = {'a', 'b', 'c', 'd', 'e'};
String s = new String(a, 1, 3);
//crea String s con valor "bcd";
MÉTODOS DE LA CLASE STRING
La clase String proporciona métodos para el tratamiento de las cadenas de caracteres:
acceso a caracteres individuales, buscar y extraer una subcadena, copiar cadenas,
convertir cadenas a mayúsculas o minúsculas, etc.
MÉTODO DESCRIPCIÓN
length() Devuelve la longitud de la cadena
indexOf(‘caracter’) Devuelve la posición de la primera
aparición de carácter
lastIndexOf(‘caracter’) Devuelve la posición de la última
aparición de carácter
charAt(n) Devuelve el carácter que está en la
posición n
substring(n1,n2) Devuelve la subcadena comprendida
entre las posiciones n1 y n2-1
toUpperCase() Devuelve la cadena convertida a
mayúsculas
toLowerCase() Devuelve la cadena convertida a
minúsculas
equals("cad") Compara dos cadenas y
devuelve true si son iguales
equalsIgnoreCase("cad") Igual que equals pero sin considerar
mayúsculas y minúsculas
compareTo(OtroString) Devuelve 0 si las dos cadenas son
iguales. <0 si la primera es
alfabéticamente menor que la segunda
ó >0 si la primera es alfabéticamente
mayor que la segunda.
compareToIgnoreCase(OtroString) Igual que compareTo pero sin
considerar mayúsculas y minúsculas.
valueOf(N) Método estático. Convierte el valor N a
String. N puede ser de cualquier tipo.
Los puedes consultar todos en la API de Java:
http://docs.oracle.com/javase/7/docs/api/index.html?java/lang/String.html

Debemos recordar que:


Los objetos String no son modificables.
Por lo tanto, los métodos que actúan sobre un String con la intención de modificarlo lo
que hacen es crear un nuevo String a partir del original y devolverlo modificado.
Por ejemplo: Una operación como convertir a mayúsculas o minúsculas un String no lo
modificará sino que creará y devolverá un nuevo String con el resultado de la operación.
String s = "abc";

s = s.toUpperCase(); //convertir a mayúsculas el contenido del String s


El recolector de basura es el encargado de eliminar de forma automática los objetos
a los que ya no hace referencia ninguna variable.

EL OPERADOR DE CONCATENACIÓN +
La clase proporciona el operador + (concatenación) para unir dos o más String.
El resultado de aplicar este operador es un nuevo String concatenación de los otros.
Por ejemplo:
String b = "Ordenador";
String c = " Portátil";

La operación: b = b + c;
crea un nuevo String (b + c) y le asigna su dirección a b:

Si te ha sido útil compártelo

Extraer un substring de un string


En muchas ocasiones es necesario extraer una porción o substring de un string
dado. Para este propósito hay una función miembro de la
clase String denominada substring.

Para estraer un substring desde una posición determinada hasta el final del string
escribimos
String str="El lenguaje Java";
String subStr=str.substring(12);

Se obtendrá el substring "Java".


Una segunda versión de la función miembro substring, nos permite extraer un
substring especificando la posición de comienzo y la el final.
String str="El lenguaje Java";
String subStr=str.substring(3, 11);

Se obtendrá el substring "lenguaje". Recuérdese, que las posiciones se empiezan


a contar desde cero.

Convertir un número a string


Para convertir un número en string se emplea la función miembro
estática valueOf (más adelante explicaremos este tipo de funciones).
int valor=10;
String str=String.valueOf(valor);

La clase String proporciona versiones de valueOf para convertir los datos


primitivos: int, long, float, double.

Esta función se emplea mucho cuando programamos applets, por ejemplo,


cuando queremos mostrar el resultado de un cálculo en el área de trabajo de la
ventana o en un control de edición.

Convertir un string en número


Cuando introducimos caracteres en un control de edición a veces es inevitable
que aparezcan espacios ya sea al comienzo o al final. Para eliminar estos espacios
tenemos la función miembro trim
String str=" 12 ";
String str1=str.trim();

Para convertir un string en número entero, primero quitamos los espacios en


blanco al principio y al final y luego, llamamos a la función miembro
estática parseInt de la clase Integer (clase envolvente que describe los números
enteros)
String str=" 12 ";
int numero=Integer.parseInt(str.trim());
Para convertir un string en número decimal (double) se requieren dos pasos:
convertir el string en un objeto de la clase envolvente Double, mediante la
función miembro estática valueOf, y a continuación convertir el objeto de la
clase Double en un tipo primitivo double mediante la función doubleValue
String str="12.35 ";
double numero=Double.valueOf(str).doubleValue();

Se puede hacer el mismo procedimiento para convertir un string a número entero


String str="12";
int numero=Integer.valueOf(str).intValue();

La clase StringBuffer
En la sección dedicada a los operadores hemos visto que es posible concatenar
cadenas de caracteres, es, decir, objetos de la clase String. Ahora bien, los objetos
de la clase String son constantes lo cual significa que por defecto, solamente se
pueden crear y leer pero no se pueden modificar.

Imaginemos una función miembro a la cual se le pasa un array de cadenas de


caracteres. Los arrays se estudiarán en la siguiente página.

public class CrearMensaje{


public String getMensaje(String[] palabras){
String mensaje="";
for(int i=0; i<palabras.length; i++){
mensaje+=" "+palabras[i];
}
return mensaje;
}
//...
}

Cada vez que se añade una nueva palabra, se reserva una nueva porción de
memoria y se desecha la vieja porción de memoria que es más pequeña (una
palabra menos) para que sea liberada por el recolector de basura (grabage
collector). Si el bucle se realiza 1000 veces, habrá 1000 porciones de memoria
que el recolector de basura ha de identificar y liberar.
Para evitar este trabajo extra al recolector de basura, se puede emplear la
clase StringBuffer que nos permite crear objetos dinámicos, que pueden
modificarse.

public class CrearMensaje{


public String getMensaje(String[] palabras){
StringBuffer mensaje=new StringBuffer();
for(int i=0; i<palabras.length; i++){
mensaje.append(" ");
mensaje.append(palabras[i]);
}
return mensaje.toString();
}
//...
}

La función append incrementa la memoria reservada para el objeto mensaje con


una palabra más sin crear nueva memoria, cada vez que se ejecuta el bucle. La
función toString, que veremos más adelante, convierte un objeto en una cadena
de caracteres.

Вам также может понравиться