Clase Java String

Las cadenas se utilizan ampliamente en la programación Java. En Java, las cadenas son objetos; Java proporciona la clase String para crear y manipular cadenas.


Crear cadenas

La forma más sencilla de crear una cadena es la siguiente:

String str = "Ejemplo";

Cuando el código encuentra una constante de cadena, el valor aquí es "Ejemplo", el compilador usará ese valor para crear un objeto String.

Al igual que otros objetos, se puede utilizar la palabra clave y métodos constructores para crear objetos String.

Crear cadenas con el constructor:

String str2=new String("Ejemplo");

Las cadenas creadas con String se almacenan en el grupo público (string pool), mientras que los objetos String creados con `new` están en el montón (heap):

String s1 = "Ejemplo"; //Creación directa con String String s2 = "Ejemplo"; //Creación directa con String String s3 = s1; //Misma referencia String s4 = new String("Ejemplo"); //Creación de objeto String String s5 = new String("Ejemplo"); //Creación de objeto String

La clase String tiene 11 constructores, que proporcionan diferentes parámetros para inicializar cadenas, por ejemplo, un parámetro de matriz de caracteres:

Código del archivo StringDemo.java:

public class StringDemo{ public static void main(String args[]){ char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'}; String helloString = new String(helloArray); System.out.println( helloString ); } }

El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:

ejemplo

Nota:La clase String es inmutable, por lo que una vez que creas un objeto String, su valor no se puede cambiar (consulte el análisis en la sección de notas).

Si necesitas hacer muchas modificaciones en cadenas, entonces deberías elegir usarlas clases StringBuffer y StringBuilder。


Longitud de la cadena

Los métodos utilizados para obtener información sobre un objeto se denominan métodos de acceso (accessors).

Un método de acceso de la clase String es el método length(), que devuelve el número de caracteres contenidos en el objeto String.

Después de ejecutar el siguiente código, la variable len es igual a 14:

Código del archivo StringDemo.java:

public class StringDemo { public static void main(String args[]) { String site = "www.example.com"; int len = site.length(); System.out.println( "Longitud de la URL de Ejemplo:" + len ); } }

El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:

Ejemplo网址长度 : 14

Concatenar cadenas

La clase String proporciona un método para concatenar dos cadenas:

string1.concat(string2);

Devuelve una nueva cadena que es la concatenación de string2 y string1. También se puede usar el método concat() con constantes de cadena, como:

"我的名字是 ".concat("Ejemplo");

Más comúnmente se usa el operador '+' para concatenar cadenas, como:

"Hello," + " ejemplo" + "!"

El resultado es el siguiente:

"Hello, ejemplo!"

A continuación se muestra un ejemplo:

Código del archivo StringDemo.java:

public class StringDemo { public static void main(String args[]) { String string1 = "URL del tutorial de Ejemplo:"; System.out.println("1, " + string1 + "www.example.com"); } }

El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:

1、Ejemplo网址:www.example.com

Crear cadenas con formato

Sabemos que para imprimir números con formato se pueden usar los métodos printf() y format().

La clase String utiliza el método estático format() para devolver un objeto String en lugar de un objeto PrintStream.

El método estático format() de la clase String se puede usar para crear cadenas de formato reutilizables, no solo para una salida de impresión única.

Como se muestra a continuación:

System.out.printf("El valor de la variable de tipo flotante es" + "%f, el valor de la variable entera es" + "%d, el valor de la variable de cadena es" + "is %s", floatVar, intVar, stringVar);

También puedes escribir así

String fs; fs = String.format("El valor de la variable de tipo flotante es" + "%f, el valor de la variable entera es" + "%d, el valor de la variable de cadena es" + " %s", floatVar, intVar, stringVar);

Métodos de String

A continuación se muestran los métodos admitidos por la clase String. Para más detalles, consulteJava String APIla documentación:

SN (número de serie) Descripción del método
1 char charAt(int index)
Devuelve el valor char en el índice especificado.
2 int compareTo(Object o)
Compara esta cadena con otro objeto.
3 int compareTo(String anotherString)
Compara dos cadenas lexicográficamente.
4 int compareToIgnoreCase(String str)
Compara dos cadenas lexicográficamente, ignorando mayúsculas y minúsculas.
5 String concat(String str)
Concatena la cadena especificada al final de esta cadena.
6 boolean contentEquals(StringBuffer sb)
Devuelve verdadero si y solo si la cadena tiene la misma secuencia de caracteres que el StringBuffer especificado.
7 static String copyValueOf(char[] data)
Devuelve un String que representa la secuencia de caracteres de la matriz especificada.
8 static String copyValueOf(char[] data, int offset, int count)
Devuelve un String que representa la secuencia de caracteres de la matriz especificada.
9 boolean endsWith(String suffix)
Prueba si esta cadena termina con el sufijo especificado.
10 boolean equals(Object anObject)
Compara esta cadena con el objeto especificado.
11 boolean equalsIgnoreCase(String anotherString)
Compara este String con otro String, ignorando mayúsculas y minúsculas.
12 byte[] getBytes()
Codifica este String en una secuencia de bytes utilizando el juego de caracteres predeterminado de la plataforma y almacena el resultado en una nueva matriz de bytes.
13 byte[] getBytes(String charsetName)
Codifica este String en una secuencia de bytes utilizando el juego de caracteres especificado y almacena el resultado en una nueva matriz de bytes.
14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copia caracteres de esta cadena a la matriz de caracteres de destino.
15 int hashCode()
Devuelve el código hash de esta cadena.
16 int indexOf(int ch)
Devuelve el índice de la primera aparición del carácter especificado en esta cadena.
17 int indexOf(int ch, int fromIndex)
Devuelve el índice de la primera aparición del carácter especificado en esta cadena, comenzando la búsqueda desde el índice especificado.
18 int indexOf(String str)
Devuelve el índice de la primera aparición de la subcadena especificada en esta cadena.
19 int indexOf(String str, int fromIndex)
Devuelve el índice de la primera aparición de la subcadena especificada en esta cadena, comenzando desde el índice especificado.
20 String intern()
Devuelve la representación canónica del objeto de cadena.
21 int lastIndexOf(int ch)
Devuelve el índice de la última aparición del carácter especificado en esta cadena.
22 int lastIndexOf(int ch, int fromIndex)
Devuelve el índice de la última aparición del carácter especificado en esta cadena, realizando una búsqueda hacia atrás desde el índice especificado.
23 int lastIndexOf(String str)
Devuelve el índice de la aparición más a la derecha de la subcadena especificada en esta cadena.
24 int lastIndexOf(String str, int fromIndex)
Devuelve el índice de la última aparición de la subcadena especificada en esta cadena, buscando hacia atrás desde el índice especificado.
25 int length()
Devuelve la longitud de esta cadena.
26 boolean matches(String regex)
Indica si esta cadena coincide con la expresión regular dada.
27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Prueba si dos regiones de cadenas son iguales.
28 boolean regionMatches(int toffset, String other, int ooffset, int len)
Prueba si dos regiones de cadenas son iguales.
29 String replace(char oldChar, char newChar)
Devuelve una nueva cadena que resulta de reemplazar todas las apariciones de oldChar en esta cadena por newChar.
30 String replaceAll(String regex, String replacement)
Reemplaza todas las subcadenas de esta cadena que coinciden con la expresión regular dada usando el replacement proporcionado.
31 String replaceFirst(String regex, String replacement)
Reemplaza la primera subcadena de esta cadena que coincide con la expresión regular dada usando el replacement proporcionado.
32 String[] split(String regex)
Divide esta cadena según las coincidencias de la expresión regular dada.
33 String[] split(String regex, int limit)
Divide esta cadena de acuerdo con las coincidencias de la expresión regular dada.
34 boolean startsWith(String prefix)
Prueba si esta cadena comienza con el prefijo especificado.
35 boolean startsWith(String prefix, int toffset)
Prueba si la subcadena de esta cadena que comienza en el índice especificado comienza con el prefijo especificado.
36 CharSequence subSequence(int beginIndex, int endIndex)
Devuelve una nueva secuencia de caracteres que es una subsecuencia de esta secuencia.
37 String substring(int beginIndex)
Devuelve una nueva cadena que es una subcadena de esta cadena.
38 String substring(int beginIndex, int endIndex)
Devuelve una nueva cadena que es una subcadena de esta cadena.
39 char[] toCharArray()
Convierte esta cadena en una nueva matriz de caracteres.
40 String toLowerCase()
Convierte todos los caracteres de este String a minúsculas utilizando las reglas de la configuración regional (locale) predeterminada.
41 String toLowerCase(Locale locale)
Convierte todos los caracteres de este String a minúsculas utilizando las reglas del Locale dado.
42 String toString()
Devuelve este objeto en sí mismo (¡ya es una cadena!).
43 String toUpperCase()
Convierte todos los caracteres de este String a mayúsculas utilizando las reglas de la configuración regional predeterminada.
44 String toUpperCase(Locale locale)
Convierte todos los caracteres de este String a mayúsculas utilizando las reglas del Locale dado.
45 String trim()
Devuelve una copia de la cadena, ignorando los espacios en blanco iniciales y finales.
46 static String valueOf(primitive data type x)
Devuelve la representación en forma de cadena del parámetro x del tipo de datos dado.
47 contains(CharSequence chars)
Determina si contiene la secuencia de caracteres especificada.
48 isEmpty()
Determina si la cadena está vacía.
Otras extensiones