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
LaStringclase 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
Stringincluye 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 laCharacterclase.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 suappendmétodo. Las conversiones de cadenas se implementan a través del métodotoString, definidoObjecty 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á
NullPointerExceptionque se lance un.A
Stringrepresenta 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 laCharacterclase para obtener más información). Los valores de índice se refieren acharunidades de código, por lo que un carácter suplementario utiliza dos posiciones en aString.La
Stringclase 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,charvalores).- 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_ORDERUn comparador que ordena losStringobjetos porcompareToIgnoreCase.
Resumen del constructor
Constructor y Descripción String()Inicializa unStringobjeto recién creado para que represente una secuencia de caracteres vacía.String(byte[] bytes)Construye un nuevoStringdecodificando la matriz de bytes especificada utilizando el juego de caracteres predeterminado de la plataforma.String(byte[] bytes, Charset charset)Construye un nuevoStringdecodificando 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 losStringconstructores que toman unCharsetnombre de juego de caracteres o que usan el juego de caracteres predeterminado de la plataforma.String(byte[] bytes, int offset, int length)Construye un nuevoStringdecodificando 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 nuevoStringdecodificando 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 losStringconstructores que toman unCharsetnombre 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 nuevoStringdecodificando la submatriz de bytes especificada usando el juego de caracteres especificado.String(byte[] bytes, String charsetName)Construye un nuevoStringdecodificando la matriz de bytes especificada usando el juego de caracteres especificado .String(char[] value)Asigna un nuevoStringpara que represente la secuencia de caracteres contenida actualmente en el argumento de matriz de caracteres.String(char[] value, int offset, int count)Asigna un nuevoStringque contiene caracteres de una submatriz del argumento de matriz de caracteres.String(int[] codePoints, int offset, int count)Asigna un nuevoStringque contiene caracteres de una submatriz del argumento de matriz de puntos de código Unicode .String(String original)Inicializa unStringobjeto 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 charcharAt(int index)Devuelve elcharvalor en el índice especificado.intcodePointAt(int index)Devuelve el carácter (punto de código Unicode) en el índice especificado.intcodePointBefore(int index)Devuelve el carácter (punto de código Unicode) antes del índice especificado.intcodePointCount(int beginIndex, int endIndex)Devuelve el número de puntos de código Unicode en el rango de texto especificado de esteString.intcompareTo(String anotherString)Compara dos cadenas lexicográficamente.intcompareToIgnoreCase(String str)Compara dos cadenas lexicográficamente, ignorando las diferencias entre mayúsculas y minúsculas.Stringconcat(String str)Concatena la cadena especificada al final de esta cadena.booleancontains(CharSequence s)Devuelve verdadero si y solo si esta cadena contiene la secuencia especificada de valores de caracteres.booleancontentEquals(CharSequence cs)Compara esta cadena con la especificadaCharSequence.booleancontentEquals(StringBuffer sb)Compara esta cadena con la especificadaStringBuffer.static StringcopyValueOf(char[] data)Devuelve una cadena que representa la secuencia de caracteres en la matriz especificada.static StringcopyValueOf(char[] data, int offset, int count)Devuelve una cadena que representa la secuencia de caracteres en la matriz especificada.booleanendsWith(String suffix)Prueba si esta cadena termina con el sufijo especificado.booleanequals(Object anObject)Compara esta cadena con el objeto especificado.booleanequalsIgnoreCase(String anotherString)Compara estoStringcon otroString, ignorando las consideraciones del caso.static Stringformat(Locale l, String format, Object... args)Devuelve una cadena formateada utilizando la configuración regional, la cadena de formato y los argumentos especificados.static Stringformat(String format, Object... args)Devuelve una cadena formateada utilizando la cadena de formato y los argumentos especificados.byte[]getBytes()Codifica estoStringen 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 estoStringen una secuencia de bytes usando el juego de caracteres dado , almacenando el resultado en una nueva matriz de bytes.voidgetBytes(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 estoStringen una secuencia de bytes usando el conjunto de caracteres nombrado, almacenando el resultado en una nueva matriz de bytes.voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)Copia caracteres de esta cadena en la matriz de caracteres de destino.inthashCode()Devuelve un código hash para esta cadena.intindexOf(int ch)Devuelve el índice dentro de esta cadena de la primera aparición del carácter especificado.intindexOf(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.intindexOf(String str)Devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada.intindexOf(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.Stringintern()Devuelve una representación canónica del objeto de cadena.booleanisEmpty()intlastIndexOf(int ch)Devuelve el índice dentro de esta cadena de la última aparición del carácter especificado.intlastIndexOf(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.intlastIndexOf(String str)Devuelve el índice dentro de esta cadena de la última aparición de la subcadena especificada.intlastIndexOf(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.intlength()Devuelve la longitud de esta cadena.booleanmatches(String regex)intoffsetByCodePoints(int index, int codePointOffset)Devuelve el índice dentro de esteStringque se desplaza del dadoindexpor loscodePointOffsetpuntos de código.booleanregionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)Comprueba si dos regiones de cuerdas son iguales.booleanregionMatches(int toffset, String other, int ooffset, int len)Comprueba si dos regiones de cuerdas son iguales.Stringreplace(char oldChar, char newChar)Devuelve una nueva cadena resultante de reemplazar todas las apariciones deoldCharen esta cadena connewChar.Stringreplace(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.StringreplaceAll(String regex, String replacement)Reemplaza cada subcadena de esta cadena que coincide con la expresión regular dada con el reemplazo dado.StringreplaceFirst(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)booleanstartsWith(String prefix)Comprueba si esta cadena comienza con el prefijo especificado.booleanstartsWith(String prefix, int toffset)Comprueba si la subcadena de esta cadena que comienza en el índice especificado comienza con el prefijo especificado.CharSequencesubSequence(int beginIndex, int endIndex)Devuelve una nueva secuencia de caracteres que es una subsecuencia de esta secuencia.Stringsubstring(int beginIndex)Devuelve una nueva cadena que es una subcadena de esta cadena.Stringsubstring(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.StringtoLowerCase()Convierte todos los caracteres en esteStringa minúsculas utilizando las reglas de la configuración regional predeterminada.StringtoLowerCase(Locale locale)Convierte todos los caracteres en esteStringa minúsculas usando las reglas del dadoLocale.StringtoString()Este objeto (que ya es una cadena) se devuelve.StringtoUpperCase()Convierte todos los caracteres en esteStringa mayúsculas utilizando las reglas de la configuración regional predeterminada.StringtoUpperCase(Locale locale)Convierte todos los caracteres en esteStringa mayúsculas usando las reglas del dadoLocale.Stringtrim()Devuelve una copia de la cadena, omitiendo los espacios en blanco iniciales y finales.static StringvalueOf(boolean b)Devuelve la representación de cadena delbooleanargumento.static StringvalueOf(char c)Devuelve la representación de cadena delcharargumento.static StringvalueOf(char[] data)Devuelve la representación de cadena delcharargumento de matriz.static StringvalueOf(char[] data, int offset, int count)Devuelve la representación de cadena de una submatriz específica delcharargumento de la matriz.static StringvalueOf(double d)Devuelve la representación de cadena deldoubleargumento.static StringvalueOf(float f)Devuelve la representación de cadena delfloatargumento.static StringvalueOf(int i)Devuelve la representación de cadena delintargumento.static StringvalueOf(long l)Devuelve la representación de cadena dellongargumento.static StringvalueOf(Object obj)Devuelve la representación de cadena delObjectargumento.
Detalle de campo
CASE_INSENSITIVE_ORDER
Comparador final estático público < String > CASE_INSENSITIVE_ORDER
Un comparador que ordena losStringobjetos 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