JavaRush /Blog Java /Random-ES /Clase de cadena en Java

Clase de cadena en Java

Publicado en el grupo Random-ES
La clase String en Java está diseñada para funcionar con cadenas en Java. Todos los literales de cadena definidos en un programa Java (por ejemplo, "abc") son instancias de la clase String. Veamos sus características clave:
  1. La clase implementa las interfaces Serializabley CharSequence. Dado que está incluido en el paquete java.lang, no es necesario importarlo.
  2. La clase String en Java es una clase final y no puede tener hijos.
  3. La clase String es una clase inmutable, lo que significa que sus objetos no se pueden cambiar una vez creados. Cualquier operación en un objeto String que resulte en un objeto de la clase String dará como resultado la creación de un nuevo objeto.
  4. Debido a su inmutabilidad, los objetos de clase String son seguros para subprocesos y pueden usarse en un entorno de subprocesos múltiples.
  5. Cada objeto en Java se puede convertir en una cadena mediante un método toStringque todas las clases de Java heredan de la clase Object.
Clase de cadena en Java - 1

Trabajar con cadenas de Java

Esta es una de las clases más utilizadas en Java. Tiene métodos para analizar ciertos caracteres en una cadena, para comparar y buscar cadenas, extraer subcadenas, crear una copia de una cadena con todos los caracteres convertidos a minúsculas y mayúsculas, y otros. Puede encontrar una lista de todos los métodos de la clase String en la documentación oficial . Java también implementa un mecanismo simple de concatenación (conectando cadenas), convirtiendo primitivas en una cadena y viceversa. Veamos algunos ejemplos de cómo trabajar con la clase String en Java.

Creando cadenas

La forma más sencilla de crear una instancia de la clase String es asignarle el valor de un literal de cadena:
String s = "I love movies";
Sin embargo, la clase String tiene muchos constructores que le permiten:
  • crear un objeto que contenga una cadena vacía
  • crear una copia de una variable de cadena
  • crear una cadena basada en una matriz de caracteres
  • crear una cadena basada en una matriz de bytes (teniendo en cuenta las codificaciones)
  • etc.

Adición de cadenas

Agregar dos cadenas en Java es bastante simple usando el archivo +. Java le permite agregar variables y cadenas literales entre sí:
public static void main(String[] args) {
    String day = "Día";
    String and = "Y";
    String night = "Noche";

    String dayAndNight = day + " " + and + " " + night;
}
Al agregar objetos de la clase String con objetos de otras clases, reducimos estos últimos a forma de cadena. La conversión de objetos de otras clases a una representación de cadena se realiza mediante una llamada a un método implícito toStringen el objeto. Demostremos esto con el siguiente ejemplo:
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("máximo");
        String out = "objeto java:" + max;
        System.out.println(out);
        // Salida: Objeto Java: Persona llamada Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "El hombre con el nombre" + name;
        }
    }
}

Comparación de cadenas

Para comparar cadenas, puede utilizar el método equals():
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
Cuando el caso no es importante para nosotros al comparar cadenas, necesitamos usar el método equalsIgnoreCase():
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

Convertir un objeto/primitiva en una cadena

Para convertir una instancia de cualquier clase Java o cualquier tipo de datos primitivo en una representación de cadena, puede utilizar el método String.valueOf():
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Salida:
        1
        12.0
        123.4
        123456
        verdadero
        Persona llamada Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "El hombre con el nombre" + name;
        }
    }
}

Convertir una cadena en un número

A menudo es necesario convertir una cadena en un número. Las clases contenedoras de tipo primitivo tienen métodos que sirven exactamente para este propósito. Todos estos métodos comienzan con la palabra análisis. Considere la traducción de una cadena a números enteros ( Integer) y fraccionarios ( ) a continuación:Double
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

Convertir una colección de cadenas en una representación de cadena

Si necesita convertir todos los elementos de alguna colección de cadenas en una representación de cadena a través de un delimitador arbitrario, puede utilizar los siguientes métodos de la clase Java String:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
¿Dónde delimiterestá el separador de elementos y elementses una instancia de matriz de cadenas/colección de cadenas? Veamos un ejemplo donde convertimos una lista de cadenas en una cadena, separando cada una con un punto y coma:
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Salida:
    Philip J. Fry; Turanga Leela; Bender Bending Rodríguez; Hubert Farnsworth; Hermes Conrado; John D. Zoidberg; Amy Wong
     */
}

Dividir una cadena en una matriz de cadenas

Esta operación se realiza mediante el método split(String regex) El separador es una expresión regular de cadena regex. En el siguiente ejemplo, realizaremos la operación opuesta a la que realizamos en el ejemplo anterior:
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Salida:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodríguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

Determinar la posición de un elemento en una línea.

En el lenguaje Java, String proporciona un conjunto de métodos para determinar la posición de un carácter/subcadena en una cadena:
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
Dónde:
  1. ch— el símbolo que estás buscando ( char)
  2. str- cadena de búsqueda
  3. fromIndex— la posición desde la cual buscar el elemento
  4. métodos indexOf: devuelve la posición del primer elemento encontrado
  5. métodos lastIndexOf: devuelve la posición del último elemento encontrado
Si no se encuentra el elemento que busca, los métodos devolverán la línea -1. Intentemos encontrar el número de serie de las letras A, K, Z, Яen el alfabeto inglés, pero tengamos en cuenta que la indexación de caracteres en una cadena en Java comienza desde cero:
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

Extraer una subcadena de una cadena

Para extraer una subcadena de una cadena, la clase String en Java proporciona métodos:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
Veamos cómo podemos usar los métodos de posicionamiento de elementos y extracción de subcadenas para obtener el nombre del archivo de su ruta:
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

Convertir cadena a mayúsculas/minúsculas:

La clase String proporciona métodos para convertir una cadena a mayúsculas y minúsculas:
  • toLowerCase()
  • toUpperCase()
Veamos cómo funcionan estos métodos usando un ejemplo:
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
Trabajar con esta clase de Java se estudia en los niveles iniciales del curso en línea JavaRush:

Fuentes adicionales

También se proporciona información sobre la clase String en otros artículos de la comunidad JavaRush:
  1. Cadenas en Java : este artículo cubre algunos conceptos básicos sobre cómo trabajar con cadenas en Java.
  2. Cadena de Java. Preguntas y respuestas de la entrevista, parte 1 : este artículo analiza las preguntas de la entrevista sobre el tema Stringy también proporciona respuestas a las preguntas con explicaciones y ejemplos de código.
  3. Cadenas en Java (clase java.lang.String) : este artículo proporciona un análisis más profundo de la clase String y también analiza las complejidades de trabajar con esta clase.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION