Clase String en Java: Dominando Creación y Manipulación de Cadenas
Los Strings, ampliamente usados en programación Java, son una secuencia de caracteres. En Java, los strings se tratan como objetos.
La plataforma Java proporciona la clase String para crear y manipular strings.
Creando Strings
La forma más directa es escribir:
String saludo = "¡Hola mundo!";
Cuando el compilador encuentra un literal string, crea un objeto String con ese valor.
Como cualquier objeto, puedes crear objetos String con new y un constructor. La clase String tiene 11 constructores para proporcionar valor inicial desde diferentes fuentes, como array de caracteres.
Ejemplo
Demo en Vivopublic class DemoString {
public static void main(String args[]) {
char[] arrayHola = { 'h', 'o', 'l', 'a', '.' };
String stringHola = new String(arrayHola);
System.out.println(stringHola);
}
}
Resultado:
Salida
hola.
Nota – La clase String es inmutable, así que una vez creado no puede cambiarse. Si necesitas muchas modificaciones, usa StringBuffer y StringBuilder.
Longitud de String
Métodos para obtener información de un objeto son métodos de acceso. Uno es length(), que devuelve el número de caracteres en el objeto string.
Ejemplo
Demo en Vivopublic class DemoString {
public static void main(String args[]) {
String palindromo = "Dabale arroz a la zorra el abad";
int len = palindromo.length();
System.out.println("Longitud del string: " + len);
}
}
Resultado:
Salida
Longitud del string: 33
Concatenando Strings
La clase String incluye método para concatenar dos strings:
string1.concat(string2);
Devuelve un nuevo string que es string1 con string2 al final. También puedes usar concat() con literales:
"Mi nombre es ".concat("Zara");
Más comúnmente se concatena con operador +:
"Hola, " + " mundo" + "!"
Resulta en: "Hola, mundo!"
Ejemplo
Demo en Vivopublic class DemoString {
public static void main(String args[]) {
String string1 = "vi era ";
System.out.println("Dabale " + string1 + "el abad");
}
}
Resultado:
Salida
Dabale vi era el abad
Creando Strings Formateados
Tienes printf() y format() para imprimir salida con números formateados. La clase String tiene un método de clase equivalente, format(), que devuelve un objeto String en lugar de PrintStream.
Usar String.format() estático permite crear un string formateado reutilizable, frente a una sentencia de impresión única. En lugar de:
Ejemplo
System.out.printf("El valor de la variable float es " + "%f, mientras que el valor del entero " + "variable es %d, y el string " + "es %s", floatVar, intVar, stringVar);
Puedes escribir:
String fs;
fs = String.format("El valor de la variable float es " + "%f, mientras que el valor del entero " + "variable es %d, y el string " + "es %s", floatVar, intVar, stringVar);
System.out.println(fs);
Métodos de String
Lista de métodos soportados por la clase String (46 métodos):
| Nº | Método y Descripción |
|---|---|
| 1 | char charAt(int index) – Carácter en índice especificado. |
| 2 | int compareTo(Object o) – Compara este String con otro Objeto. |
| 3 | int compareTo(String anotherString) – Compara dos strings lexicográficamente. |
| 4 | int compareToIgnoreCase(String str) – Compara ignorando mayúsculas/minúsculas. |
| 5 | String concat(String str) – Concatena string especificado al final. |
| 6 | boolean contentEquals(StringBuffer sb) – True si este String representa misma secuencia que StringBuffer. |
| 7 | static String copyValueOf(char[] data) – String representando secuencia en array. |
| 8 | static String copyValueOf(char[] data, int offset, int count) – String de subarray. |
| 9 | boolean endsWith(String suffix) – Prueba si string termina con sufijo. |
| 10 | boolean equals(Object anObject) – Compara este string con objeto especificado. |
| 11 | boolean equalsIgnoreCase(String anotherString) – Compara ignorando caso. |
| 12 | byte[] getBytes() – Codifica string a bytes usando charset por defecto. |
| 13 | byte[] getBytes(String charsetName) – Codifica usando charset nombrado. |
| 14 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) – Copia caracteres a array destino. |
| 15 | int hashCode() – Código hash para este string. |
| 16 | int indexOf(int ch) – Índice de primera ocurrencia del carácter. |
| 17 | int indexOf(int ch, int fromIndex) – Índice de primera ocurrencia desde índice dado. |
| 18 | int indexOf(String str) – Índice de primera ocurrencia de subcadena. |
| 19 | int indexOf(String str, int fromIndex) – Índice de primera ocurrencia de subcadena desde índice. |
| 20 | String intern() – Representación canónica para el objeto string. |
| 21 | int lastIndexOf(int ch) – Índice de última ocurrencia del carácter. |
| 22 | int lastIndexOf(int ch, int fromIndex) – Última ocurrencia buscando hacia atrás desde índice. |
| 23 | int lastIndexOf(String str) – Índice de ocurrencia más a la derecha de subcadena. |
| 24 | int lastIndexOf(String str, int fromIndex) – Última ocurrencia de subcadena buscando hacia atrás. |
| 25 | int length() – Longitud de este string. |
| 26 | boolean matches(String regex) – True si string coincide con expresión regular. |
| 27 | boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) – Prueba si dos regiones son iguales. |
| 28 | boolean regionMatches(int toffset, String other, int ooffset, int len) – Prueba igualdad de regiones. |
| 29 | String replace(char oldChar, char newChar) – Nuevo string reemplazando todas oldChar por newChar. |
| 30 | String replaceAll(String regex, String replacement) – Reemplaza cada subcadena que coincide con regex. |
| 31 | String replaceFirst(String regex, String replacement) – Reemplaza primera subcadena que coincide con regex. |
| 32 | String[] split(String regex) – Divide string alrededor de coincidencias de regex. |
| 33 | String[] split(String regex, int limit) – Divide con límite. |
| 34 | boolean startsWith(String prefix) – Prueba si string empieza con prefijo. |
| 35 | boolean startsWith(String prefix, int toffset) – Prueba si empieza con prefijo desde índice. |
| 36 | CharSequence subSequence(int beginIndex, int endIndex) – Nueva secuencia subsecuencia. |
| 37 | String substring(int beginIndex) – Substring desde índice inicial. |
| 38 | String substring(int beginIndex, int endIndex) – Substring desde índice inicial a final. |
| 39 | char[] toCharArray() – Convierte string a nuevo array de caracteres. |
| 40 | String toLowerCase() – Convierte todos caracteres a minúsculas (locale por defecto). |
| 41 | String toLowerCase(Locale locale) – Convierte a minúsculas usando locale dado. |
| 42 | String toString() – Este objeto (ya string) se devuelve a sí mismo. |
| 43 | String toUpperCase() – Convierte todos a mayúsculas (locale por defecto). |
| 44 | String toUpperCase(Locale locale) – Convierte a mayúsculas usando locale dado. |
| 45 | String trim() – Copia del string sin espacios iniciales/finales. |
| 46 | static String valueOf(primitive data type x) – Representación string del tipo de dato pasado. |
Java
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando representaciones String en Enums de Java
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
- Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
- Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación