Uso de cadenas («strings») en Java

Manipulación de cadenas (‘strings‘) en Java y código de ejemplo

Un objeto de la clase String se crea a partir de literales (cadena de caracteres); Java crea un objeto String cuando encuentra una cadena entre comillas. Los String permiten operar con palabras y frases. No es tipo nativo de Java, existe la clase java.lang.String.
En Java sólo los tipos primitivos del lenguaje (byte, short, int, long, float, double, char, boolean) se comparan con ==, los Strings se comparan con el método equals que compara los caracteres que componen ambos String.

boolean B = cadena2.equals(cadena1);

Se puede crear un objeto String de 2 maneras:

String cadena = "Cadena"; String cadena = new String("Cadena");
Lenguaje del código: JavaScript (javascript)

El primer método es preferible; como se ha dicho, Java crea un objeto String siempre que encuentra texto entre comillas por lo que en el segundo ejemplo se llama al constructor 2 veces. Los String se pueden concatenar con el operador suma (+):

String cadena = "Cadena" + "Otra cadena";
Lenguaje del código: JavaScript (javascript)

Métodos de la clase String

A continuación se comentan los métodos más importantes de la clase String:

  • concatenar texto con texto: operador +
  • concatenar texto con números enteros: operador +
  • caracteres de escape para saltos de línea y tabulaciones: \n \t
  • length() devuelve la longitud de la cadena en caracteres
  • charAt(int) devuelve el carácter que ocupa el índice especificado
  • replace(char, char) reemplaza todas las ocurrencias del primer carácter por el segundo
  • toUpperCase() devuelve la cadena en mayúsculas
  • toLowerCase() devuelve la cadena en mayúsculas:
  • substring(int, int) devuelve una cadena que comienza en el índice del primer parámetro y termina en el índice del segundo parámetro
  • compareTo(String) compara dos String desde el punto de vista lexicográfico (en el que la cadena más corta precede a la más larga):
    – devuelve entero negativo si el String precede al argumento
    – devuelve entero positivo si el String va detrás del argumento
    – devuelve cero si ambos String son iguales (compareTo() devuelve cero cuando equals(String) devuelve true)
  • append() añade texto a una cadena existente
  • indexOf() devuelve el índice en que aparece por primera vez el carácter especificado (devuelve -1 si el carácter no se encuentra)
  • lastIndexOf() devuelve el índice en que aparece por última vez el carácter especificado (devuelve -1 si el carácter no se encuentra)
  • insert(int, char) inserta un carácter en la posición especificada
  • reverse() devuelve el texto invertido.

Código de ejemplo

/* CLASE QUE MUESTRA EN CONSOLA LOS RESULTADOS * DE ALGUNOS METODOS QUE MANIPULAN CADENAS */ public class Cadenas { public static void main(String[] args) { //instanciar String texto1 = "PolloDavid"; // Declaracion simple String texto2 = new String("PolloMiliuco"); // Usando un constructor System.out.println( "\nLa primera cadena de texto es :\n" ); System.out.println( "\t"+texto1 ); System.out.println( "\nLa segunda cadena de texto es :\n" ); System.out.println( "\t"+texto2 ); //concatenar System.out.println( "\nConcatenamos con texto2 delante: " + texto2 + texto1 ); System.out.println( "Concatenamos con texto1 delante: " + texto1 + texto2 ); System.out.println( "Concatenamos cadenas con enteros: " + texto1 + " " + 5 + " " + 23.5 ); // longitud System.out.println( "\nLa longitud de texto2 es: " + texto2.length() ); //caracter de un indice System.out.println( "La segunda letra de texto2 es: " + texto2.charAt(1) ); //buscar segmentos System.out.println( "Tres letras de texto2 desde la posicion 2: " + texto2.substring(2,5) ); //primer indice de un caracter System.out.println( "\nLa letra l aparece por primera vez en texto2 en el indice: " + texto2.indexOf("l") ); //ultimo indice de un caracter System.out.println( "La letra l aparece por ultima vez en texto2 en el indice: " + texto2.lastIndexOf("l") ); //reemplazar texto2 = texto2.replace("c", "q"); System.out.println( "\nCambiamos c por q en texto2: " + texto2); // mayúsculas y minúsculas System.out.println( "\nLa cadena texto2 en mayusculas: " + texto2.toUpperCase() ); System.out.println( "La cadena texto2 en minusculas: " + texto2.toLowerCase() ); //comparación System.out.println( "\nComparamos texto1 y texto2: " + texto1.compareTo(texto2) ); if (texto1.compareTo(texto2) < 0) System.out.println( "\tTexto1 es mas corto que texto2" ); //nueva cadena con StringBuffer StringBuffer texto3 = new StringBuffer("Otra cadena"); //agregar caracteres al final texto3.append(" nueva"); System.out.println( "\nTexto 3 es: " + texto3 ); //insertar caracteres en una posición texto3.insert(6, "1"); System.out.println( "Intercalando un 1 en la posicion 6: " + texto3 ); //revertir el orden de la cadena texto3.reverse(); System.out.println( "Y ahora texto3 invertido: " + texto3 +"\n"); } }
Lenguaje del código: JavaScript (javascript)