Encuentra informaci贸n referente a la programaci贸n, electr贸nica y mucho m谩s, la p谩gina est谩 pensada para compartir contenido educativo relevante coadyuvando a su aprendizaje diario.
Clase String en Java – Cadenas de texto

Con la clase String en Java podemos manipular todo tipo de cadenas de texto, para usarlo simplemente debemos crear un objeto haciendo referencia a la clase String y gracias a esto podremos manejar la cadena de texto como una matriz, esto nos dar谩 la posibilidad de tratar al texto como una matriz unidimensional donde cada letra es una posici贸n de la matriz.

Cuando trabajamos en Java con un String estamos creando un objeto de tipo String, por esta raz贸n no se la considera como un tipo de dato primitivo.

String cadena = 鈥 隆Hola Mundo! 鈥; 

Cuando empezamos a trabajar con cadenas de texto muchas veces nos surge la necesidad de unir dos o m谩s cadenas de texto, esto se puede hacer concatenando las cadenas con el operador 鈥+鈥.

String Cadena ="Cadena de texto " +
"unida a la segunda cadena de texto y "+
"la tercera cadena de texto.";

Al poder trabajar con un objeto String nos da la posibilidad usarlo de distintas formas, usando un array de caracteres o asignado valores num茅ricos a un array para tratarlos como c贸digos Unicode en alg煤n formato de codificaci贸n de caracteres que escojamos.

char[] msg = {'C','r','e','a','t','i','v','i','d','a','d'};
String texto = new String(msg);

byte[] datos = {78,68,72,74}; 
String msg_cod = new String (datos, 鈥淚SO-8859-1鈥);

Comparaci贸n entre objetos de la clase String de Java

Para realizar una comparaci贸n entre objetos String podemos usar m茅todos que se detallan a continuaci贸n.

  • cadena1.equal(cadena2). El resultado de esta comparaci贸n ser谩 true si la cadena1 es exactamente igual a la cadena2 y ambas cadenas son del tipo String.
  • cadena1.equalsIgnoreCase(cadena2). Funciona como la anterior pero no toma en cuenta las may煤sculas y min煤sculas, por lo cual “Creatividad” sera igual a “CREATIVIDAD”.
  • cadena1.compareTo(cadena2). Con este m茅todo busca igualdades haciendo una comparaci贸n lexicogr谩ficamente. Cada car谩cter tiene un valor Unicode, estos valores son comparados entre las dos cadenas. Cuando la primera cadena es mayor que la segunda el m茅todo nos devuelve un valor num茅rico positivo, si las cadenas son iguales nos devuelve “0”, pero cunado la segunda cadena s mayor que la primera nos devolver谩 un valor num茅rico negativo. Para esta comparaci贸n Java toma la tabla ASCII por lo cual la letra 鈥溍扁 en mayor que la vocal 鈥渙鈥.
  • cadena1.compareToIgnoreCase(cadena2). Compara dos cadenas lexicogr谩ficamente, ignorando las diferencias entre may煤sculas y min煤sculas, el resto de su funcionamiento es igual al anterior caso.

M茅todo String.valueOf

Es un m茅todo est谩tico que nos da la posibilidad de transformar una fecha, un numero, etc a un String .

int x = 39874;
String numero = String.valueOf(x);
String txt_fecha = String.valueOf(new Date());

M茅todos para trabajar con las cadenas de texto

El uso de estos m茅todos es bastante sencillo, solo necesitamos escribir el nombre del m茅todo junto a nuestro objeto String.

length

Devuelve la longitud de una cadena en un valor num茅rico, es decir nos devolver谩 el n煤mero de caracteres de la cadena.

String texto="Hola mundo";
System.out.println(texto.length());//Devuelve 10

concat

Para concatenar cadenas en Java usamos el m茅todo concat donde su parametro es la cadena que deseamos unir o simplemente con el operador 鈥+鈥.

String cadena1="Hola ", cadena2="mundo", textofinal;
textofinal = cadena1.concat(cadena2); // Devuelve Hola mundo

charAt

Podemos escoger un car谩cter de nuestro texto simplemente debemos declarar su posici贸n del car谩cter en el texto, la posici贸n del primer car谩cter es cero y va aumentando en uno despu茅s de cada car谩cter.

Al estar trabajando con un m茅todo que recibe un valor que puede ser en alg煤n memento m谩s de lo permitido puede lanzarnos una excepci贸n de tipo IndexOutOfBoundsException.

String cadena = "Hola mundo";
Char c1 = cadena.charAt(5); // c1 ser谩 igual a 鈥榤鈥

substring

Utilizada para obtener una porci贸n de texto de una cadena, para realizar esto debemos indicar una posici贸n inicial y una posici贸n final, en caso de equivocarnos en las posiciones se ejecutara una excepci贸n del tipo IndexOutOfBoundsException.

String cadena = "Hola mundo";
String cadena1 = cadena.substring(0,4); // cadena1 ser谩 igual a "Hola"

indexOf

Devuelve la posici贸n donde se encuentra un determinado texto en un cadena, y en caso de no encontrar nada devolver谩 -1.

String cadena1 = "Aprendiendo con Creatividad Codificada";
System.out.println(cadena1.indexOf("con")); // Imprime 12

Tambi茅n nos da la posibilidad de indicar la posici贸n desde donde quiere empezar a buscar.

indexOf(cadena, posici贸n)

lastIndexOf

Con este m茅todo podemos buscar desde el ultimo texto de nuestra cadena, es decir comienza a buscar dese el final.

String cadena1 = "Entender como funciona la mente en la sociedad es importante";
System.out.println(cadena1.lastIndexOf("la")); //imprime 35

endsWith

Devuelve verdadero (true) en caso que el texto de comparaci贸n este al final de la cadena

String cadena1 = 鈥淎prendiendo con Creatividad Codificada鈥;
System.out.println(cadena1.lastIndexOf("Codificada")); //Devuelve true

startsWith

Es similar al anterior, pero esta vez la b煤squeda inicia al principio de la cadena, si cumple la condici贸n nos devuelve “true”.

replace

Reemplaza todos los caracteres por otro que le indiquemos, pero esto lo hace de manera superficial es decir que el texto original nunca cambia y necesitamos almacenar la nueva cadena en otro String en caso de que lo requieras.

String cadena="cara";
System.out.println(cadena.replace('c' , 'r'));//Da rara
System.out.println(cadena);//Sigue siendo igual a cara

replaceAll

Logra reemplazar textos completos por otros en una cadena, tiene dos par谩metros, el texto que se busca y el texto que deseamos colocar en su cuenta del texto que buscamos, al igual que la anterior la cadena original nunca cambia.

String cadena1="Jugar en el jard铆n";
System.out.println(cadena1.replace("ar" , "er"));//Da Juger en el jerd铆n
System.out.println(cadena1);//Sigue valiendo Jugar en el jard铆n 

toUpperCase

Devuelve en may煤scula toda la cadena.

toLowerCase

Transforma en min煤sculas toda la cadena que le indiquemos.

toCharArray

Puede transformar una cadena a un array de caracteres

Estos son algunos de m茅todos m谩s usados en un programa escrito en Java, en la documentaci贸n oficial de Java podemos encontrar muchos mas que nos ayudadra a programar de manera mas apropiada.

Ejemplo del uso de la clase String de Java

import java.util.Scanner;

/**
 *
 * @author Creatividad Codificada
 */
public class ClaseString {
    //Colores para la consola
    public static final String ANSI_RESET = "\u001B[0m";
    public static final String ANSI_RED_BACKGROUND = "\u001B[41m";
    public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";
    public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m";
    public static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";
    public static final String ANSI_YELLOW = "\u001B[33m";
    public static final String ANSI_WHITE = "\u001B[37m";
    public static void main(String[] args) 
{
        //Variables 
        byte opcion;
        String menu;
        String frase = "Aprendiendo con Creatividad Codificada";
        Scanner en = new Scanner(System.in);
        do{
            System.out.println(ANSI_BLUE_BACKGROUND + ANSI_YELLOW + frase + ANSI_RESET);
            menu="";
            menu+="****** Men煤 ******\n";
            menu+="1.- Cambiar a may煤scula la frase \n";
            menu+="2.- Cambiar a min煤sculas la frase \n";
            menu+="3.- Reemplazar un car谩cter por otro \n";
            menu+="4.- Reemplazar un texto por otro \n";
            menu+="0.- Salir \n";
            menu+="Elija una opci贸n: ";
            System.out.print(menu);
            opcion=en.nextByte();
            switch(opcion){
            case 1:
                System.out.println(ANSI_GREEN_BACKGROUND+ frase.toUpperCase()+" \n");
                break;
            case 2:
                System.out.println( ANSI_GREEN_BACKGROUND+ frase.toLowerCase()+" \n");
                break;
            case 3:
                System.out.println(ANSI_YELLOW_BACKGROUND + "Ingrese el caracter que desea cambiar de la frase");
                String caracter_antiguo = en.next();
                while(caracter_antiguo.length()>1)
                {
                    System.out.println(ANSI_RED_BACKGROUND + ANSI_WHITE + "Error , Solo digita un carater" + ANSI_RESET);
                    String aux = en.next();
                    caracter_antiguo=aux;
                }
                System.out.println(ANSI_YELLOW_BACKGROUND + "Ingrese el caracter nuevo que desea colocar en la frase");
                String caracter_nuevo = en.next();
                while(caracter_nuevo.length()>1)
                {
                    System.out.println(ANSI_RED_BACKGROUND + ANSI_WHITE + "Error , Solo digita un carater"+ ANSI_RESET);
                    String aux1 = en.next();
                    caracter_nuevo=aux1;
                }
                System.out.println(ANSI_GREEN_BACKGROUND+ frase.replace(caracter_antiguo, caracter_nuevo)+" \n");
                break;   
            case 4:
                System.out.println(ANSI_YELLOW_BACKGROUND +"Ingrese el texto que desea cambiar de la frase");
                String texto_antiguo = en.next();
                System.out.println(ANSI_YELLOW_BACKGROUND + "Ingrese el texto nuevo que desea colocar de la frase");
                String texto_nuevo = en.next();
                System.out.println(ANSI_GREEN_BACKGROUND + frase.replaceAll(texto_antiguo, texto_nuevo)+" \n");
                break;   
            default:
                System.out.println(ANSI_RED_BACKGROUND +ANSI_WHITE + "No existe esta opci贸n, intenta otra vez \n");
            }
        }while(opcion!=0);
    }
    
}

Resultado

Aprendiendo con Creatividad Codificada
****** Men煤 ******
1.- Cambiar a may煤scula la frase 
2.- Cambiar a min煤sculas la frase 
3.- Reemplazar un car谩cter por otro 
4.- Reemplazar un texto por otro 
0.- Salir 
Elija una opci贸n: 

Este es un ejemplo bastante sencillo pero creo lo suficiente para entender el funcionamiento que tiene la clase String.

驴Que te parecio el art铆culo?

Su direcci贸n de email no sera publicado. Los campos obligatorios est谩n marcados con *.

驴Qu茅 hacemos con tus datos?

Creatividad Codificada como responsable tratar谩 tus datos con la finalidad de gestionar tu participaci贸n en nuestro blog informativo. Puedes acceder, rectificar y suprimir tus datos, as铆 como ejercer otros derechos consultando la informaci贸n adicional y detallada sobre protecci贸n de datos en nuestra Pol铆tica de Privacidad