Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
Strings en Java
En este tutorial, aprenderemos sobre los strings en Java, cómo crearlos y varios métodos de la clase String con la ayuda de ejemplos.
En Java, un string es una secuencia de caracteres. Por ejemplo, "hello" es un string que contiene una secuencia de caracteres 'h', 'e', 'l', 'l' y 'o'.
Usamos comillas dobles para representar un string en Java. Por ejemplo,
// crear un string
String type = "Java programming";
Aquí, hemos creado una variable string llamada type. La variable se inicializa con la cadena Java Programming.
Ejemplo: Crear un String en Java
class Main {
public static void main(String[] args) {
// crear strings
String first = "Java";
String second = "Python";
String third = "JavaScript";
// imprimir strings
System.out.println(first); // imprime Java
System.out.println(second); // imprime Python
System.out.println(third); // imprime JavaScript
}
}
En el ejemplo anterior, hemos creado tres strings llamados first, second y third. Aquí, estamos creando strings directamente como tipos primitivos.
Sin embargo, hay otra forma de crear strings en Java (usando la palabra clave new). Aprenderemos sobre eso más adelante en este tutorial.
Nota: Los strings en Java no son tipos primitivos (como int, char, etc). En su lugar, todos los strings son objetos de una clase predefinida llamada String.
Y, todas las variables string son instancias de la clase String.
Operaciones con Strings en Java
Java String proporciona varios métodos para realizar diferentes operaciones en strings. Veremos algunas de las operaciones de string más comúnmente usadas.
1. Obtener la Longitud de un String
Para encontrar la longitud de un string, usamos el método length() de String. Por ejemplo,
class Main {
public static void main(String[] args) {
// crear un string
String greet = "Hello! World";
System.out.println("String: " + greet);
// obtener la longitud de greet
int length = greet.length();
System.out.println("Length: " + length);
}
}
Salida
String: Hello! World Length: 12
En el ejemplo anterior, el método length() calcula el número total de caracteres en el string y lo devuelve. Para saber más, visita Java String length().
2. Unir Dos Strings en Java
Podemos unir dos strings en Java usando el método concat(). Por ejemplo,
class Main {
public static void main(String[] args) {
// crear primer string
String first = "Java ";
System.out.println("First String: " + first);
// crear segundo string
String second = "Programming";
System.out.println("Second String: " + second);
// unir dos strings
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
}
}
Salida
First String: Java Second String: Programming Joined String: Java Programming
En el ejemplo anterior, hemos creado dos strings llamados first y second. Observa la sentencia,
String joinedString = first.concat(second);
Aquí, el método concat() une el string second al string first y lo asigna a la variable joinedString.
También podemos unir dos strings usando el operador + en Java. Para saber más, visita Java String concat().
3. Comparar Dos Strings
En Java, podemos hacer comparaciones entre dos strings usando el método equals(). Por ejemplo,
class Main {
public static void main(String[] args) {
// crear 3 strings
String first = "java programming";
String second = "java programming";
String third = "python programming";
// comparar primer y segundo strings
boolean result1 = first.equals(second);
System.out.println("Strings first and second are equal: " + result1);
// comparar primer y tercer strings
boolean result2 = first.equals(third);
System.out.println("Strings first and third are equal: " + result2);
}
}
Salida
Strings first and second are equal: true Strings first and third are equal: false
En el ejemplo anterior, hemos creado 3 strings llamados first, second y third. Aquí, estamos usando el método equals() para comprobar si un string es igual a otro.
El método equals() comprueba el contenido de los strings al compararlos. Para saber más, visita Java String equals().
Nota: También podemos comparar dos strings usando el operador == en Java. Sin embargo, este enfoque es diferente al método equals(). Para saber más, visita Java String == vs equals().
Carácter de Escape en Strings de Java
El carácter de escape se usa para escapar algunos de los caracteres presentes dentro de un string.
Supongamos que necesitamos incluir comillas dobles dentro de un string.
// incluir comilla doble
String example = "This is the "String" class";
Como los strings se representan con comillas dobles, el compilador tratará "This is the " como el string. Por lo tanto, el código anterior causará un error.
Para resolver este problema, usamos el carácter de escape \ en Java. Por ejemplo,
// usar el carácter de escape
String example = "This is the \"String\" class.";
Ahora los caracteres de escape le dicen al compilador que escape las comillas dobles y lea todo el texto.
Los Strings en Java son Inmutables
En Java, los strings son inmutables. Esto significa que, una vez creamos un string, no podemos cambiar ese string.
Para entenderlo más profundamente, considera un ejemplo:
// crear un string
String example = "Hello! ";
Aquí, hemos creado una variable string llamada example. La variable contiene el string "Hello! ".
Ahora supongamos que queremos cambiar el string.
// agregar otro string "World"
// al string anterior
example = example.concat(" World");
Aquí, estamos usando el método concat() para agregar otro string World al string anterior.
Parece que podemos cambiar el valor del string anterior. Sin embargo, esto no es true.
Veamos qué ha pasado aquí:
- JVM toma el primer string "Hello! "
- crea un nuevo string agregando "World" al primer string
- asigna el nuevo string "Hello! World" a la variable example
- el primer string "Hello! " permanece sin cambios
Crear Strings Usando la Palabra Clave new
Hasta ahora hemos creado strings como tipos primitivos en Java.
Como los strings en Java son objetos, también podemos crear strings usando la palabra clave new. Por ejemplo,
// crear un string usando la palabra clave new
String name = new String("Java String");
En el ejemplo anterior, hemos creado un string name usando la palabra clave new.
Aquí, cuando creamos un objeto string, se invoca el constructor String(). Para saber más sobre constructores, visita Constructor en Java.
Nota: La clase String proporciona varios otros constructores para crear strings. Para saber más, visita Java String (documentación oficial de Java).
Ejemplo: Crear Strings en Java usando la palabra clave new
class Main {
public static void main(String[] args) {
// crear un string usando new
String name = new String("Java String");
System.out.println(name); // imprime Java String
}
}
Crear String usando literales vs palabra clave new
Ahora que sabemos cómo se crean los strings usando literales de string y la palabra clave new, veamos cuál es la diferencia principal entre ellos.
En Java, la JVM mantiene un pool de strings para almacenar todos sus strings dentro de la memoria. El pool de strings ayuda a reutilizar los strings.
1. Al crear strings usando literales de string,
String example = "Java";
Aquí, estamos proporcionando directamente el valor del string (Java). Por lo tanto, el compilador primero verifica el pool de strings para ver si el string ya existe.
- Si el string ya existe, no se crea un nuevo string. En su lugar, la nueva referencia, example apunta al string ya existente (
Java). - Si el string no existe, se crea el nuevo string (
Java).
2. Al crear strings usando la palabra clave new,
String example = new String("Java");
Aquí, el valor del string no se proporciona directamente. Por lo tanto, se crea un nuevo string "Java" aunque "Java" ya esté presente dentro del pool de memoria.
Métodos de Java String
Además de los mencionados anteriormente, hay varios métodos de string presentes en Java. Aquí están algunos de esos métodos:
| Métodos | Descripción |
|---|---|
| contains() | comprueba si el string contiene una subcadena |
| substring() | devuelve la subcadena del string |
| join() | une los strings dados usando el delimitador |
| replace() | reemplaza el carácter viejo especificado con el nuevo carácter especificado |
| replaceAll() | reemplaza todas las subcadenas que coinciden con el patrón regex |
| replaceFirst() | reemplaza la primera subcadena que coincide |
| charAt() | devuelve el carácter presente en la ubicación especificada |
| getBytes() | convierte el string a un array de bytes |
| indexOf() | devuelve la posición del carácter especificado en el string |
| compareTo() | compara dos strings en orden de diccionario |
| compareToIgnoreCase() | compara dos strings ignorando diferencias de mayúsculas/minúsculas |
| trim() | elimina espacios en blanco iniciales y finales |
| format() | devuelve un string formateado |
| split() | divide el string en un array de strings |
| toLowerCase() | convierte el string a minúsculas |
| toUpperCase() | convierte el string a mayúsculas |
| valueOf() | devuelve la representación en string del argumento especificado |
| toCharArray() | convierte el string a un array char |
| matches() | comprueba si el string coincide con el regex dado |
| startsWith() | comprueba si el string comienza con el string dado |
| endsWith() | comprueba si el string termina con el string dado |
| isEmpty() | comprueba si un string está vacío o no |
| intern() | devuelve la representación canónica del string |
| contentEquals() | comprueba si el string es igual a charSequence |
| hashCode() | devuelve un código hash para el string |
| subSequence() | devuelve una subsecuencia del string |
Java
- Dominando strings en C#: Fundamentos, operaciones y técnicas avanzadas
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando representaciones String en Enums de Java
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
- Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
- Dominando el reemplazo de Strings en Java: replace(), replaceAll() y replaceFirst() explicados
- Java String toLowerCase() y toUpperCase(): Convertir mayúsculas/minúsculas con conciencia de locale
- Convertir Char a String en Java – Ejemplos Prácticos y Mejores Prácticas