CodeGym /Blog Java /Random-ES /Matriz de cadenas en Java
John Squirrels
Nivel 41
San Francisco

Matriz de cadenas en Java

Publicado en el grupo Random-ES
A menudo, la primera estructura de datos con la que se familiariza un programador novato es una matriz. Esto se debe a que las matrices son bastante fáciles de aprender. Una matriz unidimensional es una secuencia que consta de un número fijo de celdas en las que se pueden almacenar datos. En el caso del lenguaje Java, solo puedes almacenar un tipo de datos en una matriz. En otras palabras, las matrices en Java son homogéneas. Las celdas de una matriz pueden contener objetos de cualquier tipo. Puedes poner objetos de cualquier tipo, primitivos u objetos, en una matriz. Hoy veremos matrices de cadenas en lenguaje Java, es decir, matrices en las que cada elemento es una cadena. Descubriremos cómo declarar Java String Array y cómo trabajar con él.

Cómo declarar e inicializar una matriz de cadenas

Puedes declarar e inicializar una matriz String en Java de diferentes maneras. Por ejemplo, como en el siguiente código:
String[] myArray = {"value1", "value2", "value3"};
Aquí primero declaramos una variable myArray de tipo String[] . Luego, inicializamos la matriz con tres valores de cadena encerrados entre llaves. Alternativamente, puede tener la declaración e inicialización de la matriz de cadenas en líneas separadas:
String[] myArray; // String array declaration
myArray = new String[] {"value1", "value2", "value3"}; // initialize the array
Aquí tenemos el mismo resultado que el primer fragmento de código pero separamos la declaración y la inicialización en dos pasos. Además, puede inicializar una matriz solo con tamaño, como se muestra a continuación:
String[] myArray = new String[5];
Aquí crea una matriz de cadenas y especifica el tamaño de la matriz de cadenas , pero no proporciona ningún valor inicial. Luego puede asignar valores a la matriz mediante un bucle o especificando los valores individualmente. Tenga en cuenta que en todos los casos, debe especificar el tipo de matriz (en este caso, String ) al declarar la variable.

Cómo iterar a través de la matriz String

En Java puedes iterar a través de una matriz de cadenas usando un bucle. Podría ser una construcción for o foreach. Veamos un ejemplo que utiliza ambos tipos de bucles:
public class IterateStringArrayExample {
    public static void main(String[] args) {
        String[] stringArray = {"violin", "viola", "cello", "double bass"};

        // Using a for loop
        for (int i = 0; i < stringArray.length; i++) {
            String s = stringArray[i];
            System.out.print(s + " ");
        }
        System.out.println();

        // Using a foreach loop
        for (String s : stringArray) {
            System.out.print(s + " ");
        }
        System.out.println();
    }
}
Aquí primero creamos una matriz de cuerdas llamada stringArray con cuatro elementos (instrumentos musicales de cuerdas). Luego, ambos bucles iteran a través de cada elemento de la matriz de cadenas y lo imprimen en la consola. El bucle foreach es una forma más concisa de iterar a través de una matriz, pero el bucle for puede resultar útil si necesita acceder al índice de cada elemento. El resultado de este programa será:
violín viola violonchelo contrabajo violín viola violonchelo contrabajo

Cómo agregar un nuevo elemento a Array

No puedes simplemente agregar un nuevo elemento a una matriz en Java. Sin embargo, Java tiene trucos especiales para ello. Si tiene una matriz de cadenas y necesita agregar una nueva cadena al final de su matriz, use el método Arrays.copyOf . Este método crea una nueva matriz con un elemento adicional y luego agrega el nuevo elemento al final de la nueva matriz. He aquí un ejemplo:
//add string Array and a new element
String[] oldArray = {"violin", "viola", "cello"};
String newElement = "double bass";
String[] newArray = Arrays.copyOf(oldArray, oldArray.length + 1);
newArray[newArray.length - 1] = newElement;
Aquí el método Arrays.copyOf crea una nueva matriz llamada newArray con una longitud uno mayor que la oldArray. El método agrega newElement al final de newArray asignándolo al último elemento de newArray . Las matrices en Java tienen una longitud fija, por lo que no se pueden agregar ni eliminar elementos de una matriz una vez que se ha creado. Para agregar o eliminar elementos dinámicamente de una colección, será mejor que utilice otra estructura de datos. Por ejemplo, una Lista o un Mapa .

Cómo ordenar elementos en String Array

Claro, si está interesado en buenos ejercicios de programación, puede escribir su algoritmo de clasificación para el procedimiento de clasificación. Sin embargo, en tareas de trabajo reales es mucho más fácil utilizar el método Arrays.sort() . He aquí un ejemplo:
import java.util.Arrays;

public class SortStringArrayExample {
    public static void main(String[] args) {
        String[] stringArray = {"violin", "viola", "cello", "double bass"};

        // Sorting the array
        Arrays.sort(stringArray);

        // Printing the sorted array
        for (String s : stringArray) {
            System.out.print(s + " ");
        }
    }
}
Aquí primero creamos una matriz de cadenas llamada stringArray con cuatro elementos. Luego llamamos al método Arrays.sort() para ordenar los elementos de la matriz en orden ascendente. Finalmente, iteramos a través de la matriz ordenada usando un bucle for-each e imprimimos cada elemento en la consola. El resultado de este programa es el siguiente:
violonchelo contrabajo viola violín
Como puede ver, el método ordenó alfabéticamente los elementos en stringArray .

Cómo buscar una cadena particular en una matriz de cadenas

Para buscar una cadena necesaria en una matriz de cadenas en Java, puede usar un bucle para iterar a través de cada elemento de la matriz y compararlo con la cadena que está buscando. Aquí hay un programa de ejemplo:
public class SearchString {

       public static void main(String[] args) {
           String[] stringArray = {"violin", "viola", "cello", "double bass"};
           String searchString1 = "cello";
           String searchString2 = "piano";
           search(stringArray, searchString1);
           search(stringArray, searchString2);

       }
          public static boolean search (String[] myArray, String myString){

           boolean found = false;

           // Loop through the array to search for the string
           for (String s : myArray) {
               if (s.equals(myString)) {
                   found = true;
                   break;
               }
           }

           // Print the result
           if (found) {
               System.out.println(myString + " found in the array.");
           } else {
               System.out.println(myString + " not found in the array.");
           } return found;
       }
}
Aquí estamos creando un método con dos argumentos, una matriz y una cadena que se encontrará. Creamos un 'encontrado' booleano para rastrear si encontramos el String . Es el valor encontrado que devolverá el método. Luego usamos un bucle for-each para iterar sobre cada elemento de la matriz. Usamos el método equals() en el bucle para comparar el elemento actual con la cadena de búsqueda. Si el método encuentra una coincidencia, la configuramos como verdadera y usamos la declaración break para salir del ciclo antes. Finalmente imprimimos el resultado dependiendo de si lo encontrado es verdadero o falso. En el método principal llamamos dos veces al método de búsqueda, con el String que está en el array y el que no. El resultado de este programa es el siguiente:
violonchelo encontrado en la matriz. piano no encontrado en la matriz.

Cómo convertir una matriz de cadenas en una cadena

Puede utilizar el método String.join() para convertir una matriz String en String en Java. Este método devuelve una cadena concatenada por el delimitador dado. El delimitador se copia para cada elemento en el método String join() . He aquí un ejemplo:
String[] myArray = {"value1", "value2", "value3"};
String joinedString = String.join(", ", myArray);
System.out.println(joinedString);
El resultado es el siguiente:
valor1, valor2, valor3
Primero, declaramos una matriz de cadenas myArray con tres valores de cadena. Luego usamos el método String.join() para unir todos los elementos de la matriz en una sola cadena. El primer argumento de String.join() es el delimitador que desea utilizar entre cada elemento de la matriz. Hemos utilizado "," (una coma seguida de un espacio) como delimitador. El segundo argumento es la matriz a la que desea unirse. Finalmente, asignamos el String resultante a la variable joinString y lo imprimimos en la consola.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION