Enum para String em Java

Rupam Yadav 12 outubro 2023
  1. Converter enum para String utilizando name() em Java
  2. Converter Enum para String utilizando toString() em Java
Enum para String em Java

Enum em Java é um tipo especial de dados ou classe que contém um array de constantes. Podemos adicionar construtores e métodos num enum, também. Para criar um enum em Java, utilizamos a palavra-chave enum e damos-lhe um nome tal como a uma classe. Neste artigo, vamos percorrer as formas de converter um enum para string Java.

Converter enum para String utilizando name() em Java

No primeiro exemplo, utilizaremos name() da classe Enum para devolver o nome exacto da constante enumerativa como uma string. Abaixo, criámos um enum dentro da classe, mas podemos criar um enum fora ou dentro dela. Nomeámos o enum Directions, que contém os nomes das direcções como constante de enumeração.

Podemos ir buscar qualquer constante utilizando o método name(). Directions.WEST.name() voltará WEST como uma string, que é armazenada na variável string getWestInString e depois imprimir na saída.

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

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

Resultado:

WEST

Converter Enum para String utilizando toString() em Java

Tal como name() temos o método toString(), mas quando se trata de utilizar uma constante de enumeração para qualquer fim importante, name() é preferível porque devolve a mesma constante enquanto toString() pode ser anulada dentro do enum. Isto significa que podemos modificar o que é devolvido como uma string utilizando toString(), o que veremos no próximo exemplo.

Neste exemplo, utilizamos o método toString() na constante que precisa de ser convertida numa string.

public class EnumToString {
  enum Currencies { USD, YEN, EUR, INR }

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

Resultado:

USD

Discutimos acima que podemos substituir o método toString() pelo método toString(), para modificar o que queremos devolver como uma string com a constante enumerativa. No exemplo abaixo, temos quatro moedas como constantes chamando os construtores da enumeração com uma string passada como argumento.

Sempre que uma constante vê um método toString(), passará o nome da string para getCurrencyName, uma variável da string. Agora temos de anular o método toString() dentro do enum e devolver o getCurrencyName com uma string.

No método main(), utilizámos toString() para obter a constante INR como string. Podemos ver na saída que a string modificada é impressa. Podemos também imprimir todos os valores de uma enumeração utilizando Enum.values(), que retorna um array de constantes de enumeração e depois faz um loop através de cada constante para as imprimir como strings.

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);
    }
  }
}

Resultado:

Your Currency: INR
All Currency: USD
All Currency: YEN
All Currency: EUR
All Currency: INR
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java String

Artigo relacionado - Java Enum