En este tutorial aprenderemos cómo trabajar con cadenas en Java. Las cadenas, tan utilizadas en programación, son una secuencia de caracteres. En el lenguaje de programación Java, las cadenas son un objeto. La plataforma Java proporciona una clase
String
para crear y manipular cadenas.
Creando cadenas
La forma más sencilla de crear una cadena es la siguiente:String greeting = "Hello world!";
En este caso, "¡Hola mundo!" es una cadena literal (es decir, una constante) que consta de una secuencia de caracteres entre comillas. Siempre que el compilador encuentra una cadena literal, crea un objeto de tipo String
con un valor, en nuestro caso, "¡Hola mundo!". Como cualquier otro objeto, se puede crear una cadena usando la palabra clave new
. La clase String
tiene tres constructores que le permiten crear un objeto usando diferentes fuentes, como una matriz de caracteres .
char[] helloArray = {'h', 'e', 'l', 'l', 'o', '.'};
String helloString = new String(helloArray);
System.out.println(helloString);
La última línea del ejemplo imprimirá hola en la pantalla . La clase String
es inmutable, por lo que una vez que creamos un objeto, no podemos cambiarlo. Algunos métodos que veremos a continuación pueden solucionar este problema. Porque String
Inmutables, estos métodos crean y devuelven una nueva cadena que contiene el resultado de la operación.
Longitud de la cadena Java
Los métodos para obtener información sobre una cadena se denominan métodos de acceso. Uno de estos métodoslength()
. Devuelve el número de caracteres de la cadena. En el siguiente ejemplo len
será 17:
String palindrome = "Dont saw I saw Tod";
int len = palindrome.length();
La variable palindrome
contiene un palíndromo, es decir una palabra u oración que se lee igual en ambos sentidos. Escribamos un pequeño programa que invierta un palíndromo. Usaremos el método charAt(i)
, que devuelve el i -ésimo carácter de la cadena, comenzando con 0
.
public class StringDemo {
public static void main(String[] args) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
char[] tempCharArray = new char[len];
char[] charArray = new char[len];
//создадим из строки
// массив символов
for (int i = 0; i < len; i++) {
tempCharArray[i] =
palindrome.charAt(i);
}
// перевернем массив символов
for (int j = 0; j < len; j++) {
charArray[j] =
tempCharArray[len - 1 - j];
}
String reversePalindrome =
new String(charArray);
System.out.println(reversePalindrome);
}
}
El programa imprimirá
doT saw I was toD
Para invertir una cadena, primero creamos una matriz de caracteres a partir de la cadena (el primer bucle), luego creamos una nueva matriz en la que escribimos la primera matriz invertida y luego creamos una nueva cadena. La clase String
contiene un método getChars()
que devuelve una matriz de caracteres, por lo que el primer bucle se puede reemplazar con la línea:
palindrome.getChars(0, len, tempCharArray, 0);
Concatenación de cadenas
La claseString
implementa un método para concatenar dos cadenas:
string1.concat(string2);
Este código devolverá una nueva cadena que lo contiene string1
y se le añade string2
. También puedes usar este método con cadenas literales:
"My name is ".concat("Rumplestiltskin");
La mayoría de las veces, las cadenas se unen mediante el +
operador " ", ejemplo:
"Hello," + " world" + "!"
El resultado será la cadena "¡ Hola, mundo!" " El +
operador " " se usa ampliamente para mostrar información, por ejemplo:
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
El código generará " Dot vio que yo era Tod ". Esta concatenación se puede utilizar junto con cualquier otro objeto. Para objetos que no son cadenas, se llamará al método toString()
que los convierte en cadenas. Configuración del formato de salida de la cadena Ya hemos visto métodos printf()
cuando format()
formateamos la salida de números. La clase String
tiene un método similar que devuelve una cadena. Utilizando un método estático format()
es posible crear una plantilla de stock que se puede reutilizar, por ejemplo:
System.out.printf ("The value of the float " +
"variable is %f, while " +
"the value of the " +
"integer variable is %d, "
"and the string is %s",
floatVar, intVar, stringVar);
puedes usar este código:
String fs;
fs = String.format("The value of the float " +
"variable is %f, while " +
"the value of the " +
"integer variable is %d, " +
" and the string is %s",
froatVar, intVar, stringVar);
System.out.println(fs);
¡Eso es todo! :) Enlace a la fuente: Cadenas en Java
GO TO FULL VERSION