Enum a String in Java

  1. Converti Enum in stringa usando name() in Java
  2. Converti Enum in stringa usando toString() in Java

Enum in Java è un tipo di dati o una classe speciale che contiene un insieme di costanti. Possiamo anche aggiungere costruttori e metodi in un’enumerazione. Per creare un enum in Java, usiamo la parola chiave enum e gli diamo un nome proprio come una classe. In questo articolo, esamineremo i modi per convertire un’enumerazione in una stringa Java.

Converti Enum in stringa usando name() in Java

Nel primo esempio, useremo name() della classe Enum per restituire il nome esatto della costante enum come stringa. Di seguito, abbiamo creato un enum all’interno della classe, ma possiamo creare un enum sia all’esterno che al suo interno. Abbiamo chiamato l’enumerazione Directions, che contiene i nomi delle direzioni come costante enum.

Possiamo recuperare qualsiasi costante usando il metodo name(). Directions.WEST.name() restituirà WEST come una stringa, che è memorizzata nella variabile stringa getWestInString e quindi stampata nell’output.

public class EnumToString {
    enum Directions {
        NORTH,
        SOUTH,
        EAST,
        WEST
    }

    public static void main(String[] args) {
        String getWestInString = Directions.WEST.name();
        System.out.println(getWestInString);
    }
}

Produzione:

WEST

Converti Enum in stringa usando toString() in Java

Proprio come name() abbiamo il metodo toString(), ma quando si tratta di usare una costante enum per qualsiasi scopo importante, name() è preferito perché restituisce la stessa costante mentre toString() può essere sovrascritto all’interno dell’enumerazione. Significa che possiamo modificare ciò che viene restituito come stringa usando toString(), che vedremo nel prossimo esempio.

In questo esempio, usiamo il metodo toString() sulla costante che deve essere convertita in una stringa.

public class EnumToString {

    enum Currencies {
        USD,
        YEN,
        EUR,
        INR
    }

    public static void main(String[] args) {
        String getCurrency = Currencies.USD.toString();
        System.out.println(getCurrency);
    }
}

Produzione:

USD

Abbiamo discusso in precedenza che possiamo sovrascrivere il metodo toString() per modificare ciò che vogliamo restituire come stringa con la costante enum. Nell’esempio seguente, abbiamo quattro valute come costanti che chiamano i costruttori enum con una stringa passata come argomento.

Ogni volta che una costante vede un metodo toString(), passerà il nome della stringa a getCurrencyName, una variabile di stringa. Ora dobbiamo sovrascrivere il metodo toString() all’interno dell’enum e restituire getCurrencyName con una stringa.

Nel metodo main(), abbiamo usato toString() per ottenere la costante INR come stringa. Possiamo vedere nell’output che viene stampata la stringa modificata. Possiamo anche stampare tutti i valori di un enum usando Enum.values(), che restituisce un array di costanti enum e quindi scorre ogni costante per stamparli come stringhe.

public class EnumToString {

    enum Currencies {
        USD("USD"),
        YEN("YEN"),
        EUR("EUR"),
        INR("INR");

        private final String getCurrencyName;

        Currencies(String currencyName) {
            getCurrencyName = currencyName;
        }

        @Override
        public String toString() {
            return "Currency: " + getCurrencyName;
        }
    }

    public static void main(String[] args) {
        String getCurrency = Currencies.INR.toString();
        System.out.println("Your " + getCurrency);

        Currencies[] allCurrencies = Currencies.values();
        for (Currencies currencies : allCurrencies) {
            System.out.println("All " + currencies);
        }
    }
}

Produzione:

Your Currency: INR
All Currency: USD
All Currency: YEN
All Currency: EUR
All Currency: INR

Articolo correlato - Java String

  • Converti array di byte in stringa esadecimale in Java
  • Articolo correlato - Java Enum

  • Controlla se una stringa è un numero in Java
  • Rimuovi sottostringa dalla stringa in Java