Spesso la prima struttura dati con cui un programmatore alle prime armi viene a conoscenza è un array. Questo perché gli array sono abbastanza facili da imparare. Una matrice unidimensionale è una sequenza composta da un numero fisso di celle in cui è possibile archiviare i dati. Nel caso del linguaggio Java è possibile memorizzare solo un tipo di dati in un array. In altre parole, gli array in Java sono omogenei. Le celle della matrice possono contenere oggetti di qualsiasi tipo. Puoi inserire oggetti di qualsiasi tipo, primitivo o oggetto, in un array. Oggi esamineremo gli array di stringhe in linguaggio Java, ovvero gli array, ciascun elemento dei quali è una stringa. Scopriremo come dichiarare Java String Array e come lavorarci.

Come dichiarare e inizializzare un array di stringhe

Puoi dichiarare e inizializzare un array String in Java in diversi modi. Ad esempio come nel codice seguente:

String[] myArray = {"value1", "value2", "value3"};
Qui dichiariamo prima una variabile myArray di tipo String[] . Successivamente, inizializziamo l'array con tre valori stringa racchiusi tra parentesi graffe. In alternativa, puoi avere la dichiarazione e l'inizializzazione dell'array di stringhe su righe separate:

String[] myArray; // String array declaration
myArray = new String[] {"value1", "value2", "value3"}; // initialize the array
Qui abbiamo lo stesso risultato del primo frammento di codice ma separiamo la dichiarazione e l'inizializzazione in due passaggi. Inoltre, puoi inizializzare un array solo con la dimensione, proprio come qui sotto:

String[] myArray = new String[5];
Qui crei un array di stringhe e specifichi la dimensione di array di stringhe , ma non fornisci alcun valore iniziale. È quindi possibile assegnare valori all'array utilizzando un ciclo o specificando i valori singolarmente. Tieni presente che in tutti i casi devi specificare il tipo dell'array (in questo caso String ) durante la dichiarazione della variabile.

Come scorrere l'array String

In Java puoi scorrere un array String usando un loop. Potrebbe essere per o una costruzione foreach. Facciamo un esempio che utilizza entrambi i tipi di loop:

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();
    }
}
Qui creiamo prima un array di stringhe denominato stringArray con quattro elementi (strumenti musicali a corda). Quindi, entrambi i cicli ripetono ogni elemento dell'array di stringhe e lo stampano sulla console. Il ciclo foreach è un modo più conciso di scorrere un array, ma il ciclo for può essere utile se è necessario accedere all'indice di ciascun elemento. L'output di questo programma sarà:
violino viola violoncello contrabbasso violino viola violoncello contrabbasso

Come aggiungere un nuovo elemento ad Array

Non puoi semplicemente aggiungere un nuovo elemento a un array in Java. Tuttavia Java ha dei trucchi speciali per questo. Se hai un array di stringhe e devi aggiungere una nuova stringa alla fine dell'array, utilizza il metodo Arrays.copyOf . Questo metodo crea un nuovo array con un elemento aggiuntivo e quindi aggiunge il nuovo elemento alla fine del nuovo array. Ecco un esempio:

//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;
Qui il metodo Arrays.copyOf crea un nuovo array denominato newArray con una lunghezza maggiore di oldArray. Il metodo aggiunge newElement alla fine di newArray assegnandolo all'ultimo elemento di newArray . Gli array in Java hanno una lunghezza fissa, quindi non è possibile aggiungere o rimuovere elementi da un array una volta creato. Per aggiungere o rimuovere dinamicamente elementi da una raccolta, è meglio utilizzare un'altra struttura dati. Ad esempio, un Elenco o una Mappa .

Come ordinare gli elementi in String Array

Certo, se sei interessato a buoni esercizi di programmazione, puoi scrivere il tuo algoritmo di ordinamento per la procedura di ordinamento. Tuttavia, nelle attività lavorative reali è molto più semplice utilizzare il metodo Arrays.sort() . Ecco un esempio:

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 + " ");
        }
    }
}
Qui creiamo prima un array di stringhe denominato stringArray con quattro elementi. Chiamiamo quindi il metodo Arrays.sort() per ordinare gli elementi nell'array in ordine crescente. Infine, iteriamo attraverso l'array ordinato utilizzando un ciclo for-each e stampiamo ogni elemento sulla console. L'output di questo programma è il seguente:
violoncello contrabbasso viola violino
Come puoi vedere, il metodo ha ordinato gli elementi in stringArray in ordine alfabetico.

Come cercare una stringa particolare nell'array di stringhe

Per cercare una stringa necessaria in un array di stringhe in Java, puoi utilizzare un ciclo per scorrere ciascun elemento dell'array e confrontarlo con la stringa che stai cercando. Ecco un programma di esempio:

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;
       }
}
Qui stiamo creando un metodo con due argomenti, un array e una stringa da trovare. Creiamo un valore booleano "found" per verificare se abbiamo trovato String . È il valore trovato che il metodo restituirà. Utilizziamo quindi un ciclo for-each per scorrere ciascun elemento dell'array. Usiamo il metodo equals() nel ciclo per confrontare l'elemento corrente con la stringa di ricerca. Se il metodo trova una corrispondenza, la impostiamo su true e utilizziamo l'istruzione break per uscire anticipatamente dal ciclo. Infine, stampiamo il risultato a seconda che quanto trovato sia vero o falso. Nel metodo main , chiamiamo il metodo search due volte, con la String che è nell'array e quella che non lo è. L'output di questo programma è il seguente:
violoncello trovato nell'array. pianoforte non trovato nell'array.

Come convertire un array di stringhe in una stringa

È possibile utilizzare il metodo String.join() per convertire un array String in String in Java. Questo metodo restituisce una stringa concatenata dal delimitatore specificato. Il delimitatore viene copiato per ciascun elemento nel metodo String join() . Ecco un esempio:

String[] myArray = {"value1", "value2", "value3"};
String joinedString = String.join(", ", myArray);
System.out.println(joinedString);
L'output è il seguente:
valore1, valore2, valore3
Per prima cosa dichiariamo un array di stringhe myArray con tre valori stringa. Utilizziamo quindi il metodo String.join() per unire tutti gli elementi dell'array in un'unica stringa. Il primo argomento di String.join() è il delimitatore che desideri utilizzare tra ciascun elemento dell'array. Abbiamo usato "," (una virgola seguita da uno spazio) come delimitatore. Il secondo argomento è l'array a cui vuoi unirti. Infine, assegniamo la stringa risultante alla variabile joinString e la stampiamo sulla console.