En este tutorial, aprenderemos sobre Java Strings, cómo crearlos y varios métodos de String con la ayuda de ejemplos.
En Java, una cadena es una secuencia de caracteres. Por ejemplo, "hola" es una cadena que contiene una secuencia de caracteres 'h', 'e', 'l', 'l' y 'o'.
Usamos comillas dobles para representar una cadena en Java. Por ejemplo,
// create a string String type = "Java programming";
Aquí, hemos creado una variable de cadena llamada type. La variable se inicializa con la cadena Java Programming
.
Nota : Las cadenas en Java no son tipos primitivos (como int
, char
, etc.). En cambio, todas las cadenas son objetos de una clase predefinida denominada String
.
Y todas las variables de cadena son instancias de la String
clase.
Ejemplo: crear una cadena en Java
class Main ( public static void main(String() args) ( // create strings String first = "Java"; String second = "Python"; String third = "JavaScript"; // print strings System.out.println(first); // print Java System.out.println(second); // print Python System.out.println(third); // print JavaScript ) )
En el ejemplo anterior, hemos creado tres cadenas denominadas primero, segundo y tercero. Aquí, estamos creando cadenas directamente como tipos primitivos.
Sin embargo, hay otra forma de crear cadenas de Java (utilizando la new
palabra clave). Aprenderemos sobre eso más adelante en este tutorial.
Operaciones de cadenas de Java
Java String proporciona varios métodos para realizar diferentes operaciones en cadenas. Examinaremos algunas de las operaciones de cadena de uso común.
1. Obtenga la longitud de una cadena
Para encontrar la longitud de una cadena, usamos el length()
método de String. Por ejemplo,
class Main ( public static void main(String() args) ( // create a string String greet = "Hello! World"; System.out.println("String: " + greet); // get the length of greet int length = greet.length(); System.out.println("Length: " + length); ) )
Salida
String: ¡Hola! Longitud mundial: 12
En el ejemplo anterior, el length()
método calcula el número total de caracteres en la cadena y lo devuelve. Para obtener más información, visite Java String length ().
2. Unir dos cadenas
Podemos unir dos cadenas en Java usando el concat()
método. Por ejemplo,
class Main ( public static void main(String() args) ( // create first string String first = "Java "; System.out.println("First String: " + first); // create second String second = "Programming"; System.out.println("Second String: " + second); // join two strings String joinedString = first.concat(second); System.out.println("Joined String: " + joinedString); ) )
Salida
Primera cadena: Java Segunda cadena: Programación Cadena unida: Programación Java
En el ejemplo anterior, hemos creado dos cadenas denominadas primero y segundo. Note la declaración,
String joinedString = first.concat(second);
Aquí, el concat()
método se une primero y segundo y lo asigna a la variable joinString.
También podemos unir dos cadenas usando el +
operador en Java. Para obtener más información, visite Java String concat ().
3. Compara dos cadenas
En Java, podemos hacer comparaciones entre dos cadenas usando el equals()
método. Por ejemplo,
class Main ( public static void main(String() args) ( // create 3 strings String first = "java programming"; String second = "java programming"; String third = "python programming"; // compare first and second strings boolean result1 = first.equals(second); System.out.println("Strings first and second are equal: " + result1); // compare first and third strings boolean result2 = first.equals(third); System.out.println("Strings first and third are equal: " + result2); ) )
Salida
Las cadenas primera y segunda son iguales: verdadero Las cadenas primera y tercera son iguales: falso
En el ejemplo anterior, hemos creado 3 cadenas denominadas primero, segundo y tercero. Aquí, estamos usando el equal()
método para verificar si una cadena es igual a otra.
El equals()
método verifica el contenido de las cadenas mientras las compara. Para obtener más información, visite Java String equals ().
Nota : También podemos comparar dos cadenas usando el ==
operador en Java. Sin embargo, este enfoque es diferente al equals()
método. Para obtener más información, visite Java String == vs equals ().
Métodos de cadena de Java
Además de los mencionados anteriormente, hay varios métodos de cadena presentes en Java. Estos son algunos de esos métodos:
Métodos | Descripción |
---|---|
subcadena () | devuelve la subcadena de la cadena |
reemplazar() | reemplaza el carácter antiguo especificado con el nuevo carácter especificado |
charAt () | devuelve el carácter presente en la ubicación especificada |
getBytes () | convierte la cadena en una matriz de bytes |
índice de() | devuelve la posición del carácter especificado en la cadena |
comparar con() | compara dos cadenas en el orden del diccionario |
podar() | elimina los espacios en blanco iniciales y finales |
formato() | devuelve una cadena formateada |
división() | rompe la cuerda en una matriz de cuerdas |
toLowerCase () | convierte la cadena a minúsculas |
toUpperCase () | convierte la cadena a mayúsculas |
valor de() | devuelve la representación de cadena del argumento especificado |
toCharArray () | convierte la cadena en una char matriz |
Carácter de escape en cadenas de Java
El carácter de escape se utiliza para escapar de algunos de los caracteres presentes dentro de una cadena.
Supongamos que necesitamos incluir comillas dobles dentro de una cadena.
// include double quote String example = "This is the "String" class";
Since strings are represented by double quotes, the compiler will treat "This is the " as the string. Hence, the above code will cause an error.
To solve this issue, we use the escape character in Java. For example,
// use the escape character String example = "This is the "String " class.";
Now escape characters tell the compiler to escape double quotes and read the whole text.
Java Strings are Immutable
In Java, strings are immutable. This means, once we create a string, we cannot change that string.
To understand it more deeply, consider an example:
// create a string String example = "Hello! ";
Here, we have created a string variable named example. The variable holds the string "Hello! ".
Now suppose we want to change the string.
// add another string "World" // to the previous tring example example = example.concat(" World");
Here, we are using the concat()
method to add another string World to the previous string.
It looks like we are able to change the value of the previous string. However, this is not true
.
Let's see what has happened here,
- JVM takes the first string "Hello! "
- creates a new string by adding "World" to the first string
- assign the new string "Hello! World" to the example variable
- the first string "Hello! " remains unchanged
Creating strings using the new keyword
So far we have created strings like primitive types in Java.
Since strings in Java are objects, we can create strings using the new
keyword as well. For example,
// create a string using the new keyword String name = new String("Java String");
In the above example, we have created a string name using the new
keyword.
Here, when we create a string object, the String()
constructor is invoked. To learn more about constructor, visit Java Constructor.
Note: The String
class provides various other constructors to create strings. To learn more, visit Java String (official Java documentation).
Example: Create Java Strings using the new keyword
class Main ( public static void main(String() args) ( // create a string using new String name = new String("Java String"); System.out.println(name); // print Java String ) )
Create String using literals vs new keyword
Now that we know how strings are created using string literals and the new
keyword, let's see what is the major difference between them.
In Java, the JVM maintains a string pool to store all of its strings inside the memory. The string pool helps in reusing the strings.
While creating strings using string literals, the value of the string is directly provided. Hence, the compiler first checks the string pool to see if the string already exists.
- Si la cadena ya existe , no se crea la nueva cadena. En cambio, la nueva referencia apunta a la cadena existente.
- Si la cadena no existe , se crea la nueva cadena.
Sin embargo, al crear cadenas con la nueva palabra clave , el valor de la cadena no se proporciona directamente. Por lo tanto, la nueva cadena se crea todo el tiempo.