在 Java 中把枚举类型转为字符

Rupam Yadav 2023年10月12日
  1. 在 Java 中使用 name() 将枚举转换为字符串的方法
  2. 在 Java 中使用 toString() 将枚举转换为字符串
在 Java 中把枚举类型转为字符

Java 中的 Enum 是一种特殊的数据类型或类,它拥有一组常量。我们也可以在枚举中添加构造函数和方法。要在 Java 中创建一个枚举,我们使用关键字 enum,并像类一样给它起一个名字。在这篇文章中,我们将介绍 Java 中将枚举转换为字符串的方法。

在 Java 中使用 name() 将枚举转换为字符串的方法

在第一个例子中,我们将使用 Enum 类的 name() 以字符串形式返回枚举常量的确切名称。下面,我们在类内部创建了一个枚举,但我们可以在类外或类内创建一个枚举。我们将这个枚举命名为 Directions,它包含了作为枚举常量的方向名称。

我们可以使用 name() 方法获取任何常量。Directions.WEST.name() 将以字符串形式返回 WEST,存储在字符串变量 getWestInString 中,然后打印在输出中。

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

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

输出:

WEST

在 Java 中使用 toString() 将枚举转换为字符串

就像 name() 一样,我们有 toString() 方法,但是当涉及到使用一个枚举常量做任何重要的用途时,name() 是首选,因为它返回的是同一个常量,而 toString() 可以在枚举中被覆盖。这意味着我们可以使用 toString() 修改作为字符串返回的内容,我们将在下一个例子中看到。

在这个例子中,我们在需要转换为字符串的常量上使用 toString() 方法。

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

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

输出:

USD

我们在上面已经讨论过,我们可以重写 toString() 方法来修改我们想用枚举常量返回的字符串。在下面的例子中,我们有四种货币作为常量调用枚举构造函数,并传递一个字符串作为参数。

每当常量看到 toString() 方法时,就会把字符串名传给 getCurrencyName 这个字符串变量。现在我们要在枚举里面覆盖 toString() 方法,用字符串返回 getCurrencyName

main() 方法中,我们使用 toString() 方法将 INR 常量作为字符串获取。我们可以在输出中看到,修改后的字符串被打印出来。我们也可以使用 Enum.values() 来打印一个枚举的所有值,它返回一个枚举常量数组,然后在每个常量中循环,把它们打印成字符串。

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

输出:

Your Currency: INR
All Currency: USD
All Currency: YEN
All Currency: EUR
All Currency: INR
作者: Rupam Yadav
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

相关文章 - Java String

相关文章 - Java Enum