CodeGym /Blog Java /Random-ES /Cadenas de Java
John Squirrels
Nivel 41
San Francisco

Cadenas de Java

Publicado en el grupo Random-ES

¿Qué es una cadena en Java?

En programación, las cadenas se utilizan con mucha frecuencia. Una cadena en Java es un objeto que representa una secuencia de caracteres respaldada por una matriz de caracteres. La clase String es inmutable en Java e implementa interfaces Comparable , Serializable y CharSequence . Veamos un ejemplo para entenderlo.
String str = "string"
Aquí str es la secuencia de 6 caracteres que son s, t, r, i, n y g.
Índice de matriz de caracteres 0 1 2 3 4 5
Valor s t r i norte gramo
Dirección de memoria 0x12824 0x12825 0x12826 0x12827 0x12828 0x12829
Como ahora sabemos, la matriz es inmutable, lo que significa que no se puede cambiar después de la inicialización, por lo tanto, la cadena también es inmutable.

Formas de inicialización de cadenas

Hay dos formas de inicializar una cadena.
  1. Literales de cadena
  2. Nuevo operador

Literal de cadena

En el ejemplo anterior se utiliza la forma más sencilla y directa de declarar una cadena. Siempre que el compilador interpreta un literal de cadena, siempre se convierte en el objeto String.
String str = "string";

Nuevo operador

También podemos inicializar una cadena usando el nuevo operador.
String strNew = new String("using new operator");

Ejemplo

import java.io.*;
import java.lang.*;

class StringInitializationExample {
    public static void main(String[] args)
    {
        //declare java string with a string literal
        String str = "a string literal";

        System.out.println("String str = " + str);

        //declare string using new operator
        String strNew = new String("using new operator");

        System.out.println("String strNew = " + strNew);
    }
}

Producción

String str = un literal de cadena String strNew = usando el nuevo operador

Cadena frente a StringBuilder frente a StringBuffer

Ya hemos discutido qué es la clase String, así que discutiremos las otras dos clases y su propósito, junto con la razón por la que Java introdujo estas dos clases cuando ya tenía la clase String para nosotros. Es mejor que vayas arriba y revises la clase String para entenderla mejor.

Razón

Como sabemos, el objeto de clase String es inmutable, cada vez que necesitamos cambiar la cadena, nunca muta el objeto actual, pero el valor modificado siempre se almacena como un nuevo objeto String. Entonces, si necesitamos cambiar el valor, una y otra vez, también se consumirá memoria. Manteniendo este punto, Java nos ha proporcionado las clases StringBuilder y StringBuffer . Ahora veremos cómo son útiles en este escenario.

búfer de cadena

String es una representación de una secuencia inmutable de caracteres, pero StringBuffer es una secuencia mutable de caracteres . Utiliza la mayoría de los métodos de la clase String junto con algunos propios para cambiar el contenido y la secuencia de caracteres. Es seguro para subprocesos porque sus métodos están sincronizados para su uso por múltiples subprocesos, manteniendo el orden en serie. Implementa las interfaces Serializable , Appendable y CharSequence .

Sintaxis

StringBuffer str = new StringBuffer("Happy Java Programming");

Constructor de cadenas

StringBuilder también representa la secuencia mutable de caracteres. Proporciona una API que es compatible con la clase StringBuffer pero no es segura para subprocesos. Entonces, cuando no hay múltiples subprocesos involucrados, es mejor utilizar la clase StringBuilder ya que es más rápida que la clase StringBuffer en muchos casos. Los métodos clave de esta clase son insertar y agregar. También implementa las interfaces Serializable , Appendable y CharSequence .

Sintaxis

StringBuilder str = new StringBuilder("Happy Java Programming");

Operaciones de cadena

En Java podemos realizar operaciones de cadenas como concatenación , comparación , división , búsqueda de longitud , reemplazo de cadenas , etc.

Métodos de cadena

La clase Java String proporciona varios métodos para manipular las cadenas o realizar las operaciones comentadas anteriormente. Echemos un vistazo a la siguiente tabla para ver algunos de estos métodos de cadena.
Métodos Descripción
Char charAt(índice int) Devuelve el valor del carácter en el índice proporcionado.
Concat de cadena (cadena de cadena) Devuelve una cadena combinando una cadena especificada al final de esta cadena.
booleano contiene (CharSequence s) Devuelve verdadero si la cadena contiene una secuencia específica de valores de caracteres.
contenido booleanoEquals (CharSequence cs) Coincide con la cadena con la secuencia de caracteres proporcionada.
contenido booleanoEquals(StringBuffer sb) Hace coincidir la cadena con el búfer de cadena proporcionado.
booleano termina con (sufijo de cadena) Compara el final de la cadena con el sufijo proporcionado.
booleano es igual a (Objeto y Objeto) Hace coincidir la cadena con el objeto proporcionado.
booleano es igual a IgnoreCase (cadena otra cadena) Este método compara dos cadenas sin tener en cuenta la distinción entre mayúsculas y minúsculas.
formato de cadena estática (formato de cadena, objeto… argumentos) Devuelve la cadena formateada utilizando el formato proporcionado y los argumentos.
byte obtenerBytes() Este método utiliza el juego de caracteres predeterminado de la plataforma para codificar la cadena en una secuencia de bytes, que luego se almacena en una nueva matriz de bytes.
void getChars(int comienzo, int fin, char[] dst, int dstBegin) Copia los caracteres de la cadena en la matriz de caracteres de destino.
int código hash() Devuelve el código hash de la cadena.
int índice de (int ch) Devuelve el índice del carácter especificado que aparece primero en la cadena.
int indexOf(int ch, int fromIndex) Devuelve el índice del carácter especificado que aparece primero a partir del índice proporcionado en esta cadena.
int índice de (cadena cadena) Busca la subcadena proporcionada en la cadena y devuelve el índice en la primera aparición.
int indexOf(cadena cadena, int fromIndex) Comienza a buscar la subcadena proporcionada en la cadena del índice dado y devuelve el índice en la primera aparición.
Pasante de cadena() Este método devuelve la representación canónica de la cadena.
int último índice de (int ch) Este método busca el carácter proporcionado en la cadena y devuelve el índice de la última aparición.
int último índice de (int ch, int desde índice) Este método busca hacia atrás desde el índice dado el carácter proporcionado en la cadena y devuelve el índice de la última aparición.
int último índice de (cadena cadena) Este método busca la subcadena proporcionada en la cadena y devuelve el índice de la última aparición.
int lastIndexOf (cadena cadena, int fromIndex) Este método busca hacia atrás desde el índice dado la subcadena proporcionada en la cadena y devuelve el índice de la última aparición.
longitud entera() Este método devuelve la longitud de la cadena.
coincidencias booleanas (cadena de expresiones regulares) Devuelve verdadero o falso al hacer coincidir la cadena con la expresión regular proporcionada.
Reemplazo de cadena (char oldValue, char newValue) Este método devuelve una cadena después de reemplazar todos los valores antiguos proporcionados con el valor nuevo en la cadena.
Cadena [] dividida (cadena expresión regular) Este método encuentra todas las coincidencias de acuerdo con la expresión regular proporcionada en la cadena y la divide entre estas coincidencias.
booleano comienza con (prefijo de cadena) Devuelve verdadero o falso al probar que la cadena comienza con el prefijo proporcionado.
Subcadena de cadena (int comenzarIndex) Este método devuelve una cadena que es la subcadena de esta cadena.
Cadena en minúsculas() Convierte todos los caracteres de la cadena a minúsculas utilizando las reglas de la configuración regional predeterminada.
Recorte de cuerda() Este método elimina todos los espacios en blanco iniciales y finales de la cadena y la devuelve.
valor de cadena estática de (char c) Devuelve la representación en cadena del argumento char.
Ahora, con la ayuda de algunos ejemplos, veremos cómo utilizarlos.

Ejemplo

import java.io.*;
import java.lang.*;

class JavaStringsExample {
  public static void main(String[] args) {

    //create a string
    String greeting = "Hello! World";
    System.out.println("String: " + greeting);

    //getting the length of greeting object
    int length = greeting.length();
    System.out.println("Length: " + length);

    //create first string
    String first = "Java ";
    System.out.println("First String: " + first);

    //create second string
    String second = "Programming";
    System.out.println("Second String: " + second);

    //joining two strings
    String joinedString = first.concat(second);
    System.out.println("Joined String: " + joinedString);

    String jpf = "Java programming";
    String jps = "Java programming";
    String jpt = "Python programming";

    //compare jpf and jps strings
    boolean result1 = jpf.equals(jps);
    System.out.println("Strings jpf and jps are equal: " + result1);

    //compare jpf and jpt strings
    boolean result2 = jpf.equals(jpt);
    System.out.println("Strings jpf and jpt are equal: " + result2);

    //converting jpf to uppercase
    System.out.println("Upper case jpf: " + jpf.toUpperCase());

    //replacing g character with v in jpf
    System.out.println("Replacing g with v in jpf: "+jpf.replace("g", "v"));
  }
}

Producción

Cadena: ¡Hola! Longitud del mundo: 12 Primera cadena: Java Segunda cadena: Programación Cadena unida: Programación Java Las cadenas jpf y jps son iguales: verdadera Las cadenas jpf y jpt son iguales: falso Jpf mayúscula: PROGRAMACIÓN JAVA Reemplazar g con v en jpf: java provramminv

Conclusión

Esperamos que a estas alturas entiendas qué son las cadenas en java, sus clases y cómo implementar sus diferentes métodos. Siéntete libre de practicar y volver cuando necesites más ayuda. ¡Feliz aprendizaje!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION