La clase String
Saludos a tod@s. En esta ocasión les hablaré un poco sobre la clase String, una de las clases más populares y útiles para manipular datos en Java.
String es una clase, no un tipo de datos
Para empezar, es necesario aclarar que String es una clase de la API de Java, más no un tipo de datos como lo son int, float, double, char y boolean.
Esto quiere decir que cuando escribimos una línea como esta:
String cadena;
cadena no es una variable, sino un objeto de la clase String.
¿Y qué es un String? Es una sucesión de caracteres, en un lenguaje técnico, es un arreglo de caracteres, recordando que un carácter es un símbolo alfanumérico. Por ejemplo:
- Caracter: ‘a’, ‘1’, ‘@’, ‘ ‘
- Cadena: “Hola”, “Esto es una cadena”, “55-246-123-45-67”
Observa la diferencia de usar ‘ ‘ a usar ” “: ‘ ‘ denota que lo que está encerrado es un caracter, en tanto que ” ” implica que se trata de una cadena de caracteres.
Dado que un objeto String es en esencia un arreglo de caracteres, puede ser visto como se aprecia en la figura 1.

Figura 1. Un objeto String visto como un arreglo de caracteres
Cada uno de los caracteres en una cadena, ocupan una casilla de memoria. Se puede acceder a cada caracter a través de su índice, que es simplemente un número entero que inicia en cero (como en todos los arreglos de Java y C). Observa también que aunque el objeto cadena tiene 10 caracteres, no existe la localidad 10, sino la 9, precisamente por iniciar el conteo en 0.
Pero dado que una cadena es un objeto, recordemos que su composición es la siguiente:

Figura 2. Estructura de una clase
¿Esto qué significa? Bueno, pues que tendremos a nuestra disposición un conjunto de propiedades y métodos para tratar con las cadenas de caracteres. Métodos que podremos aprovechar, y que harán el trabajo por nosotros al manipular cadenas, y que no existirían si String fuera un tipo primitivo de datos.
Declaración, creación e inicialización de objetos String
En la figura 3 te muestro ejemplos de declaración e inicialización de objetos del tipo String:

Figura 3. Ejemplos de declaración, construcción e inicialización de objetos String
Los ejemplos que se muestran en los renglones 2 y 3 representan la forma “correcta” de declarar, construir e inicializar un objeto tipo String, y años atrás eran la única forma válida de hacerlo. Sin embargo, la popularidad de esta clase ha llevado a que Java se modernice de tal forma que ahora no es necesario utilizar la palabra new para construir un objeto tipo String (sólo para objetos de esta clase), y podemos directamente crearlo e inicializarlo con el operador de asignación, como si se tratara de un tipo de dato primitivo, tal y como se puede apreciar en los renglones 1 y 4 de la tabla en la figura 2.
De hecho, las versiones modernas del IDE NetBeans te podrían marcar como advertencia el hecho de que no es necesario invocar al constructor de la clase con el operador new.
Propiedades de la clase String
La documentación oficial de Java sólo hace menión a un campo (propiedad, atributo) de la clase String, el cual es:
CASE_INSENSITIVE_ORDER
el cual se trata de un campo de tipo Comparator que ordena objetos tipo String de acuerdo a su método compareToIgnoreCase.
Métodos de la clase String
Los métodos de la clase String son numerosos. Pero como ya mencioné anteriormente, son la parte que nos va a permitir manejar de una forma más eficiente los objetos de esta clase, y que nos ahorrarán varias líneas de código, pues los métodos harán el trabajo por nosotros.
No voy a detenerme en describir todos y cada uno de los métodos de esta clase, pero sí de algunos de ellos que considero muy importantes.
Para hacerlo de un forma ágil, he realizado en la figura 3 un resumen de los métodos más usados de la clase String:

Figura 4. Métodos de la clase String
Considero que he incluído los métodos más importantes, aunque por supuesto la clase String tiene muchos más, los cuales puedes consultar en la documentación de Java.
El operador +
Sabemos que el operador + se usa para sumar variables y/o constantes numéricas (int, long, float, double). Pero usar este operador en dos objetos String causa un efecto de concatenación, es decir, de unión de las cadenas de caracteres. Por ejemplo:
String cadena1 ="Hola ";String cadena2 = "mundo";String cadena3 = cadena1 + cadena2;
causará que cadena3 contenga: “Hola mundo” (Nota que cadena1 tiene un espacio en blanco al final)
Entonces, aunque existe el método concat(), quizá sea más fácil utilizar el operador + que Java proporciona para unir cadenas de caracteres.
Dejo aquí la información sobre la clase String, esperando que haya sido de utilidad, y si tienen dudas o cualquier pregunta/comentario/observación, les invito a que me escriban un comentario, o compartarn este post con quien pueda serle útil.