logo

Wie konvertiere ich einen String in Enum in Java?

Java-Enum sind leistungsstarke Datentypen, die einen festen Satz von Konstanten darstellen. Sie werden häufig verwendet, um einen bestimmten Satz von Werten zu skizzieren, die ein Objekt annehmen kann. Manchmal möchten Sie möglicherweise eine Zeichenfolgenillustration in einen Aufzählungswert konvertieren. In diesem Zusammenhang werden wir verschiedene Strategien zur Konvertierung eines Strings in eine Aufzählung in Java untersuchen und Ihnen ein komplettes Programm zum besseren Verständnis anbieten.

Enum in Java verstehen:

Bevor wir uns mit dem Konvertierungsprozess befassen, lassen Sie uns kurz die Java-Enumeration zusammenfassen. Enumerationen, kurz Enum, wurden in Java 5 eingeführt, um eine strukturiertere Möglichkeit zur Darstellung konstanter Werte zu bieten. Eine Enum-Deklaration definiert einen festen Satz von Werten, die eine Variable dieses Enum-Typs annehmen kann. Jeder Wert in einer Aufzählung wird als Aufzählungskonstante bezeichnet.

Hier ist ein Beispiel für eine Enum-Deklaration:

 public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } 

In diesem Fall ist Day der Name der Enumeration und sie enthält sieben Konstanten, die die Wochentage darstellen. Enum kann auch über zusätzliche Felder und Methoden verfügen, wodurch sie flexibler und leistungsfähiger sind als einfache konstante Werte.

Konvertieren eines Strings in Enum:

Wenn Sie über eine Zeichenfolgendarstellung verfügen und diese in eine Enumeration umwandeln möchten, können Sie je nach Ihren Anforderungen unterschiedliche Vorgehensweisen anwenden. Hier besprechen wir drei gängige Methoden für diese Konvertierung: die Verwendung der valueOf()-Methode, die Verwendung einer benutzerdefinierten Zuordnung und die Verwendung der Enum.ValueOf()-Methode.

Methode 1: Verwenden der valueOf()-Methode

Die einfachste Möglichkeit, eine Zeichenfolge in eine Aufzählung umzuwandeln, ist die Verwendung der valueOf()-Technik, die über die Aufzählung selbst bereitgestellt wird. Dieser Ansatz verwendet den Namen der Enum-Konsistenz als Zeichenfolge und gibt die entsprechende Enum-Regularität zurück, wenn sie entdeckt wird. Hier ist ein Beispiel:

StringToEnumExample.java

 public class StringToEnumExample { public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public static void main(String[] args) { String dayString = 'FRIDAY'; Day day = Day.valueOf(dayString); System.out.println(day); // Output: FRIDAY } } 

Ausgabe:

 FRIDAY 

In diesem Beispiel konvertieren wir die Zeichenfolge „FRIDAY“ in die Day-Enumeration, indem wir die Methode valueOf() aufrufen. Das Ergebnis ist die Enum-Konstante Day.FRIDAY, die dann auf der Konsole ausgegeben wird.

Es ist wichtig zu beachten, dass bei der valueOf()-Methode die Groß-/Kleinschreibung beachtet wird. Wenn die Zeichenfolge keiner Enum-Konstante entspricht, wird eine java.lang.IllegalArgumentException ausgelöst. Um dies zu bewältigen, können Sie die Konvertierung in einen Try-Catch-Block einschließen, um die Ausnahme ordnungsgemäß zu behandeln.

Methode 2: Verwenden einer benutzerdefinierten Zuordnung

In einigen Fällen müssen Sie möglicherweise eine benutzerdefinierte Zuordnung zwischen der Zeichenfolgendarstellung und der Enum-Konstante durchführen. Dieser Ansatz ist nützlich, wenn die Zeichenfolgenwerte nicht genau mit den Namen der Enum-Konstanten übereinstimmen. Hier ist ein Beispiel:

StringToEnumExample.java

 public class StringToEnumExample { // Define the Day enum with associated abbreviations public enum Day { MONDAY('Mon'), TUESDAY('Tue'), WEDNESDAY('Wed'), THURSDAY('Thu'), FRIDAY('Fri'), SATURDAY('Sat'), SUNDAY('Sun'); // Private field to store the abbreviation for each day private final String abbreviation; // Constructor to initialize the abbreviation for each enum constant Day(String abbreviation) { this.abbreviation = abbreviation; } // Getter method to retrieve the abbreviation for a specific day public String getAbbreviation() { return abbreviation; } // Custom method to convert an abbreviation string to the corresponding enum constant public static Day fromAbbreviation(String abbreviation) { for (Day day : Day.values()) { if (day.getAbbreviation().equalsIgnoreCase(abbreviation)) { return day; } } // If no match is found, throw an IllegalArgumentException throw new IllegalArgumentException('Invalid abbreviation: ' + abbreviation); } } public static void main(String[] args) { String dayString = 'Fri'; // Convert the abbreviation string to the corresponding Day enum constant Day day = Day.fromAbbreviation(dayString); System.out.println(day); // Output: FRIDAY } } 

Ausgabe:

 FRIDAY 

In diesem Beispiel verfügt die Tagesaufzählung über ein zusätzliches Feld namens abbreviation, das eine kürzere Zeichenfolgendarstellung des Tages darstellt. Wir definieren eine benutzerdefinierte Methode fromAbbreviation(), die die Konvertierung basierend auf der Abkürzung durchführt. Wenn die Abkürzung mit einer Enum-Konstante übereinstimmt, wird die entsprechende Enum-Konstante zurückgegeben; andernfalls wird eine Ausnahme ausgelöst.

Methode 3: Verwendung der Enum.valueOf()-Methode

Die dritte Methode beinhaltet die Verwendung der Enum.valueOf()-Methode, einer Allzweckmethode zum Konvertieren von Zeichenfolgen in Enum-Konstanten. Hier ist ein Beispiel:

StringToEnumExample.java

 public class StringToEnumExample { // Define the Day enum with seven constants representing the days of the week public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public static void main(String[] args) { // Define the string representation of the day String dayString = 'SUNDAY'; // Convert the string to the corresponding Day enum constant using Enum.valueOf() Day day = Enum.valueOf(Day.class, dayString); // Print the value of the day System.out.println(day); // Output: SUNDAY } } 

Ausgabe:

 SUNDAY 

In diesem Beispiel übergeben wir die Enum-Klasse (Day.class) und die String-Darstellung (dayString) an die Methode Enum.valueOf(). Es gibt die entsprechende Enum-Konstante zurück, wenn sie gefunden wird, oder löst eine IllegalArgumentException aus, wenn keine Übereinstimmung gefunden wird.

In diesem Artikel haben wir verschiedene Methoden zum Konvertieren einer Zeichenfolge in eine Aufzählung in Java untersucht. Wir haben die Verwendung der valueOf()-Methode, das Erstellen einer benutzerdefinierten Zuordnung und die Verwendung der Enum.valueOf()-Methode besprochen. Abhängig von Ihren Anforderungen können Sie den am besten geeigneten Ansatz wählen. Denken Sie daran, Ausnahmen zu behandeln, wenn Sie die Methode valueOf() verwenden, und erwägen Sie eine benutzerdefinierte Zuordnung, wenn die Zeichenfolgenwerte nicht direkt mit den Namen der Enum-Konstanten übereinstimmen.