Dividi una stringa in Java

Hassan Saeed 11 dicembre 2023
Dividi una stringa in Java

Questo tutorial discute come dividere una stringa in Java.

String in Java è uno dei tipi di dati non primitivi e viene utilizzato per memorizzare una sequenza di caratteri. Possiamo dichiarare una variabile stringa semplicemente come segue:

String string = "I am a string";
String string1 = "I am another string";

Potrebbe essere necessario eseguire diverse attività di elaborazione delle stringhe, a seconda di ciò che stiamo cercando di ottenere. Consideriamo il caso in cui abbiamo una stringa che rappresenta i dati in un formato CSV, il tutto separato da una virgola.

String data = "Apple,Banana,Orange,Peach";

Vogliamo tutte le singole stringhe da questo; quindi dobbiamo dividere la stringa in base alla virgola per separare i dati per ottenere il seguente output.

> Apple
> Banana
> Orange
> Peach

Le stringhe Java hanno una funzione di divisione per impostazione predefinita String#split() che accetta una espressione regolare come input e restituisce un array di stringhe risultanti dopo la divisione sull’input specificato.

L’esempio seguente illustra come utilizzare questo metodo per dividere una determinata stringa in Java.

public class Main {
  public static void main(String args[]) {
    String data = "Apple,Banana,Orange,Peach";
    String[] splitted = data.split(",");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Il codice precedente restituisce quanto segue.

Apple
Banana
Orange
Peach

Proviamo questo metodo per dividere una stringa su un parametro diverso.

Dividi su un punto

Questa volta abbiamo una stringa come questa: "One.Two.Three.Four". Usiamo di nuovo lo stesso metodo per dividerlo.

public class Main {
  public static void main(String args[]) {
    String data = "One.Two.Three.Four";
    String[] splitted = data.split(".");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Il codice sopra non produrrà nulla! Ricorda, abbiamo detto che la funzione split accetta un pattern di espressione regolare come input. Pertanto, dobbiamo prendere misure aggiuntive quando vogliamo dividere su alcuni caratteri speciali.

Ci sono 12 caratteri con significati speciali:

  • il backslash \
  • il trattino ^
  • il simbolo del dollaro $
  • il punto o il punto .
  • il simbolo della barra verticale o del tubo |
  • il punto interrogativo ?
  • l’asterisco o la stella *
  • il segno più +
  • la parentesi di apertura (
  • la parentesi di chiusura )
  • e la parentesi quadra di apertura [
  • la parentesi graffa di apertura {

Questi caratteri speciali sono spesso chiamati metacaratteri.

Se vogliamo dividere la nostra stringa su uno dei caratteri precedenti, possiamo usare la barra rovesciata \ per sfuggire a questi caratteri speciali, quindi usa data.split('\\.') Invece di data.split('\\.').

public class Main {
  public static void main(String args[]) {
    String data = "One.Two.Three.Four";
    String[] splitted = data.split("\\.");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Il codice sopra ora restituisce correttamente:

One
Two
Three
Four

Proviamo un altro esempio.

Dividi su una stringa

Questa volta abbiamo una stringa come questa: "OneFruitTwoFruitThreeFruit". Usiamo di nuovo lo stesso metodo per dividerlo in base alla stringa Fruit.

public class Main {
  public static void main(String args[]) {
    String data = "OneFruitTwoFruitThreeFruit";
    String[] splitted = data.split("Fruit");
    for (int i = 0; i < splitted.length; i++) {
      System.out.println(splitted[i]);
    }
  }
}

Il codice precedente restituisce:

One
Two
Three

Ora sappiamo come dividere una stringa in Java su un dato parametro.

Articolo correlato - Java String