La clase String de java
• El tratamiento de cadenas de caracteres es un problema básico en informática.
• Java proporciona la clase predefinida String, cuyos objetos agrupan todos los caracteres de una cadena de caracteres.
• En la clase se proporcionan métodos que facilitan el tratamiento de cadenas.
• Internamente, los caracteres de la cadena están en una serie de char, numerados de 0 en adelante, junto con otros datos, como su longitud:
'S' 'a' 'l' 'u' 'd' 'o' 's' '.'
0 1 2 3 4 5 6 7 Longitud 8
• De acuerdo con esta numeración, encontramos métodos para:
- averiguar el carácter que ocupa una posición en la cadena,
- encontrar la posición en la que aparece un carácter, o una subcadena
- calcular la subcadena que se extiende entre dos posiciones...
• Métodos mas usuales:
Método compareTo(). La documentación detallada indica que:
- s1.compareTo(s2) es <0 si s1 es menor lexicográficamente que s2,
- s1.compareTo(s2) es 0 si s1 es menor lexicográficamente que s2,
- s1.compareTo(s2) es >0 si s1 es mayor lexicográficamente que s2.
Ejemplo: si s1 es "Memento" y s2 es "Momento", s1.compareTo(s2) da -1
• s.charAt(i) produce error de ejecución (IndexOutBoundsException) si i no está en el rango de índices de caracteres de s.
• s.indexOf(c) da -1 si c no aparece en s.
Ejemplo: Si s es "Memento" ,
s.chartAt(2) es 'm',
s.charAt(20) da error de ejecución
s.indexOf('e') da 1,
s.indexOf('E') da -1
toUppercase(), toLowerCase(), calculan un nuevo String con los caracteres del String de partida pasados a mayúsculas y a minúsculas respectivamente.
- trim(), calcula un nuevo String copiando los caracteres del String de partida salvo los blancos de los extremos.
• Ejemplo: String s = " Golfus de Roma ";
System.out.println( s.trim().toUpperCase() );
"Golfus de Roma" > En la pantalla aparece escrito: GOLFUS DE ROMA
• Aunque en la clase String existe el método de objeto concat que sirve para unir o concatenar dos cadenas, la clase posee además el operador de concatenación + es equivalente a:
String s1 = "Hola a ", s2 = "todos.";
System.out.println(s1.concat(s2));
• Java deduce por el contexto que se trata del operador de concatenación.
String s1 = "Hola a ", s2 = "todos.";
System.out.println(s1 + s2);
Java deduce por el contexto que se trata del operador de concatenación!
- Hay un grupo de métodos de String que no se aplican a objetos de la clase.
• La manera de usarlos es anteponiendo el prefijo String., como por ejemplo String.valueOf(23.2/2.0), que obtiene el String "11.6".
• En general, los métodos que no se aplican a objetos se denominan métodos estáticos, y vienen indicado en la interfaz con el modificador static.
• A los métodos no static se les llama métodos de objeto, dado que deben aplicarse sobre un objeto previamente creado.
• No existe ningún tipo de compatibilidad entre String y los tipos primitivos, pero el lenguaje proporciona la siguiente facilidad: si el compilador de Java encuentra la concatenación de un String con
un número, automáticamente usa el método String.valueOf para convertir el número en el String correspondiente.
• Ejemplo:
int nAlumC = 50, nAlumD = 44;
String s1 = "Hola a los " + (nAlumC + nAlumD);
// s1 es la cadena "Hola a los 94"
Es sintácticamente correcto abreviarlo como:
int nAlumC = 50, nAlumD = 44;
String s1 = "Hola a los " + String.valueOf(nAlumC + nAlumD);
// s1 es la cadena "Hola a los 94"
java.lang
Interface de la Clase String. (Se recomienda ver la original)
- java.lang.Object
- java.lang.String
- Todas las interfaces implementadas:
- Serializable , CharSequence , Comparable < String >
público final clase String extiende Objeto implementa Serializable , Comparable < String >, CharSequence
LaString
clase representa cadenas de caracteres. Todos los literales de cadena en programas Java, como"abc"
, se implementan como instancias de esta clase.Las cadenas son constantes; sus valores no se pueden cambiar una vez creados. Los búferes de cadena admiten cadenas mutables. Debido a que los objetos String son inmutables, se pueden compartir. Por ejemplo:
String str = "abc";
es equivalente a:
char data [] = {'a', 'b', 'c'}; String str = new String(datos);
Aquí hay algunos ejemplos más de cómo se pueden usar las cadenas:
System.out.println ("abc"); String cde = "cde"; System.out.println ("abc" + cde); String c = "abc" .substring (2,3); Stringd = cde.substring (1, 2);
La clase
String
incluye métodos para examinar caracteres individuales de la secuencia, comparar cadenas, buscar cadenas, extraer subcadenas y crear una copia de una cadena con todos los caracteres traducidos a mayúsculas o minúsculas. El mapeo de casos se basa en la versión estándar Unicode especificada por laCharacter
clase.El lenguaje Java proporciona soporte especial para el operador de concatenación de cadenas (+) y para la conversión de otros objetos a cadenas. La concatenación de cadenas se implementa a través de la clase
StringBuilder
(oStringBuffer
) y suappend
método. Las conversiones de cadenas se implementan a través del métodotoString
, definidoObject
y heredado por todas las clases en Java. Para obtener información adicional sobre la concatenación y conversión de cadenas, consulte Gosling, Joy y Steele, The Java Language Specification .A menos que se indique lo contrario, pasar un argumento nulo a un constructor o método en esta clase hará
NullPointerException
que se lance un.A
String
representa una cadena en formato UTF-16 en la que los caracteres suplementarios están representados por pares sustitutos (consulte la sección Representaciones de caracteres Unicode en laCharacter
clase para obtener más información). Los valores de índice se refieren achar
unidades de código, por lo que un carácter suplementario utiliza dos posiciones en aString
.La
String
clase proporciona métodos para tratar con puntos de código Unicode (es decir, caracteres), además de aquellos para tratar con unidades de código Unicode (es decir,char
valores).- Desde:
- JDK1.0
- Ver también:
Object.toString()
,StringBuffer
,StringBuilder
,Charset
, Forma serializada
Campo Resumen
Modificador y tipo Campo y descripción static Comparator<String>
CASE_INSENSITIVE_ORDER
Un comparador que ordena losString
objetos porcompareToIgnoreCase
.
Resumen del constructor
Constructor y Descripción String()
Inicializa unString
objeto recién creado para que represente una secuencia de caracteres vacía.String(byte[] bytes)
Construye un nuevoString
decodificando la matriz de bytes especificada utilizando el juego de caracteres predeterminado de la plataforma.String(byte[] bytes, Charset charset)
Construye un nuevoString
decodificando la matriz de bytes especificada usando el juego de caracteres especificado .String(byte[] ascii, int hibyte)
Obsoleto.Este método no convierte correctamente bytes en caracteres. A partir de JDK 1.1, la forma preferida de hacer esto es a través de losString
constructores que toman unCharset
nombre de juego de caracteres o que usan el juego de caracteres predeterminado de la plataforma.String(byte[] bytes, int offset, int length)
Construye un nuevoString
decodificando el subarreglo de bytes especificado usando el juego de caracteres predeterminado de la plataforma.String(byte[] bytes, int offset, int length, Charset charset)
Construye un nuevoString
decodificando la submatriz de bytes especificada usando el juego de caracteres especificado .String(byte[] ascii, int hibyte, int offset, int count)
Obsoleto.Este método no convierte correctamente bytes en caracteres. A partir de JDK 1.1, la forma preferida de hacer esto es a través de losString
constructores que toman unCharset
nombre de juego de caracteres o que usan el juego de caracteres predeterminado de la plataforma.String(byte[] bytes, int offset, int length, String charsetName)
Construye un nuevoString
decodificando la submatriz de bytes especificada usando el juego de caracteres especificado.String(byte[] bytes, String charsetName)
Construye un nuevoString
decodificando la matriz de bytes especificada usando el juego de caracteres especificado .String(char[] value)
Asigna un nuevoString
para que represente la secuencia de caracteres contenida actualmente en el argumento de matriz de caracteres.String(char[] value, int offset, int count)
Asigna un nuevoString
que contiene caracteres de una submatriz del argumento de matriz de caracteres.String(int[] codePoints, int offset, int count)
Asigna un nuevoString
que contiene caracteres de una submatriz del argumento de matriz de puntos de código Unicode .String(String original)
Inicializa unString
objeto recién creado para que represente la misma secuencia de caracteres que el argumento; en otras palabras, la cadena recién creada es una copia de la cadena de argumentos.String(StringBuffer buffer)
Asigna una nueva cadena que contiene la secuencia de caracteres contenida actualmente en el argumento de búfer de cadena.String(StringBuilder builder)
Asigna una nueva cadena que contiene la secuencia de caracteres contenida actualmente en el argumento del generador de cadenas.
Resumen del método
Modificador y tipo Método y descripción char
charAt(int index)
Devuelve elchar
valor en el índice especificado.int
codePointAt(int index)
Devuelve el carácter (punto de código Unicode) en el índice especificado.int
codePointBefore(int index)
Devuelve el carácter (punto de código Unicode) antes del índice especificado.int
codePointCount(int beginIndex, int endIndex)
Devuelve el número de puntos de código Unicode en el rango de texto especificado de esteString
.int
compareTo(String anotherString)
Compara dos cadenas lexicográficamente.int
compareToIgnoreCase(String str)
Compara dos cadenas lexicográficamente, ignorando las diferencias entre mayúsculas y minúsculas.String
concat(String str)
Concatena la cadena especificada al final de esta cadena.boolean
contains(CharSequence s)
Devuelve verdadero si y solo si esta cadena contiene la secuencia especificada de valores de caracteres.boolean
contentEquals(CharSequence cs)
Compara esta cadena con la especificadaCharSequence
.boolean
contentEquals(StringBuffer sb)
Compara esta cadena con la especificadaStringBuffer
.static String
copyValueOf(char[] data)
Devuelve una cadena que representa la secuencia de caracteres en la matriz especificada.static String
copyValueOf(char[] data, int offset, int count)
Devuelve una cadena que representa la secuencia de caracteres en la matriz especificada.boolean
endsWith(String suffix)
Prueba si esta cadena termina con el sufijo especificado.boolean
equals(Object anObject)
Compara esta cadena con el objeto especificado.boolean
equalsIgnoreCase(String anotherString)
Compara estoString
con otroString
, ignorando las consideraciones del caso.static String
format(Locale l, String format, Object... args)
Devuelve una cadena formateada utilizando la configuración regional, la cadena de formato y los argumentos especificados.static String
format(String format, Object... args)
Devuelve una cadena formateada utilizando la cadena de formato y los argumentos especificados.byte[]
getBytes()
Codifica estoString
en una secuencia de bytes usando el juego de caracteres predeterminado de la plataforma, almacenando el resultado en una nueva matriz de bytes.byte[]
getBytes(Charset charset)
Codifica estoString
en una secuencia de bytes usando el juego de caracteres dado , almacenando el resultado en una nueva matriz de bytes.void
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
Obsoleto.Este método no convierte correctamente los caracteres en bytes. A partir de JDK 1.1, la forma preferida de hacerlo es mediante elgetBytes()
método, que utiliza el juego de caracteres predeterminado de la plataforma.byte[]
getBytes(String charsetName)
Codifica estoString
en una secuencia de bytes usando el conjunto de caracteres nombrado, almacenando el resultado en una nueva matriz de bytes.void
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copia caracteres de esta cadena en la matriz de caracteres de destino.int
hashCode()
Devuelve un código hash para esta cadena.int
indexOf(int ch)
Devuelve el índice dentro de esta cadena de la primera aparición del carácter especificado.int
indexOf(int ch, int fromIndex)
Devuelve el índice dentro de esta cadena de la primera aparición del carácter especificado, comenzando la búsqueda en el índice especificado.int
indexOf(String str)
Devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada.int
indexOf(String str, int fromIndex)
Devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada, comenzando en el índice especificado.String
intern()
Devuelve una representación canónica del objeto de cadena.boolean
isEmpty()
int
lastIndexOf(int ch)
Devuelve el índice dentro de esta cadena de la última aparición del carácter especificado.int
lastIndexOf(int ch, int fromIndex)
Devuelve el índice dentro de esta cadena de la última aparición del carácter especificado, buscando hacia atrás comenzando en el índice especificado.int
lastIndexOf(String str)
Devuelve el índice dentro de esta cadena de la última aparición de la subcadena especificada.int
lastIndexOf(String str, int fromIndex)
Devuelve el índice dentro de esta cadena de la última aparición de la subcadena especificada, buscando hacia atrás comenzando en el índice especificado.int
length()
Devuelve la longitud de esta cadena.boolean
matches(String regex)
int
offsetByCodePoints(int index, int codePointOffset)
Devuelve el índice dentro de esteString
que se desplaza del dadoindex
por loscodePointOffset
puntos de código.boolean
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Comprueba si dos regiones de cuerdas son iguales.boolean
regionMatches(int toffset, String other, int ooffset, int len)
Comprueba si dos regiones de cuerdas son iguales.String
replace(char oldChar, char newChar)
Devuelve una nueva cadena resultante de reemplazar todas las apariciones deoldChar
en esta cadena connewChar
.String
replace(CharSequence target, CharSequence replacement)
Reemplaza cada subcadena de esta cadena que coincide con la secuencia de destino literal con la secuencia de reemplazo literal especificada.String
replaceAll(String regex, String replacement)
Reemplaza cada subcadena de esta cadena que coincide con la expresión regular dada con el reemplazo dado.String
replaceFirst(String regex, String replacement)
Reemplaza la primera subcadena de esta cadena que coincide con la expresión regular dada con el reemplazo dado.String[]
split(String regex)
String[]
split(String regex, int limit)
boolean
startsWith(String prefix)
Comprueba si esta cadena comienza con el prefijo especificado.boolean
startsWith(String prefix, int toffset)
Comprueba si la subcadena de esta cadena que comienza en el índice especificado comienza con el prefijo especificado.CharSequence
subSequence(int beginIndex, int endIndex)
Devuelve una nueva secuencia de caracteres que es una subsecuencia de esta secuencia.String
substring(int beginIndex)
Devuelve una nueva cadena que es una subcadena de esta cadena.String
substring(int beginIndex, int endIndex)
Devuelve una nueva cadena que es una subcadena de esta cadena.char[]
toCharArray()
Convierte esta cadena en una nueva matriz de caracteres.String
toLowerCase()
Convierte todos los caracteres en esteString
a minúsculas utilizando las reglas de la configuración regional predeterminada.String
toLowerCase(Locale locale)
Convierte todos los caracteres en esteString
a minúsculas usando las reglas del dadoLocale
.String
toString()
Este objeto (que ya es una cadena) se devuelve.String
toUpperCase()
Convierte todos los caracteres en esteString
a mayúsculas utilizando las reglas de la configuración regional predeterminada.String
toUpperCase(Locale locale)
Convierte todos los caracteres en esteString
a mayúsculas usando las reglas del dadoLocale
.String
trim()
Devuelve una copia de la cadena, omitiendo los espacios en blanco iniciales y finales.static String
valueOf(boolean b)
Devuelve la representación de cadena delboolean
argumento.static String
valueOf(char c)
Devuelve la representación de cadena delchar
argumento.static String
valueOf(char[] data)
Devuelve la representación de cadena delchar
argumento de matriz.static String
valueOf(char[] data, int offset, int count)
Devuelve la representación de cadena de una submatriz específica delchar
argumento de la matriz.static String
valueOf(double d)
Devuelve la representación de cadena deldouble
argumento.static String
valueOf(float f)
Devuelve la representación de cadena delfloat
argumento.static String
valueOf(int i)
Devuelve la representación de cadena delint
argumento.static String
valueOf(long l)
Devuelve la representación de cadena dellong
argumento.static String
valueOf(Object obj)
Devuelve la representación de cadena delObject
argumento.
Detalle de campo
CASE_INSENSITIVE_ORDER
Comparador final estático público < String > CASE_INSENSITIVE_ORDER
Un comparador que ordena losString
objetos porcompareToIgnoreCase
. Este comparador es serializable.Tenga en cuenta que este Comparador no tiene en cuenta la configuración regional y dará como resultado un pedido insatisfactorio para ciertas configuraciones regionales. El paquete java.text proporciona clasificadores para permitir el ordenamiento sensible a la configuración regional.
- Desde:
- 1.2
- Ver también:
Collator.compare(String, String)
Comentarios
Publicar un comentario