logo

Kaip „Java“ konvertuoti eilutę į „Enum“?

Java enum yra galingi duomenų tipai, atspindintys fiksuotą konstantų rinkinį. Jie dažniausiai naudojami norint apibrėžti konkrečią reikšmių rinkinį, kurį objektas gali įgyti. Kartais gali tekti konvertuoti eilutės iliustraciją į enum reikšmę. Šiame kontekste mes išnagrinėsime įvairias strategijas, kaip paversti eilutę į enum Java programoje, ir pasiūlysime jums visą programą, kad geriau suprastumėte.

„Enum“ supratimas „Java“:

Prieš pasinerdami į konvertavimo procesą, trumpai apibendrinkime Java enum. Sąrašai arba sutrumpintai enum buvo pristatyti „Java 5“, siekiant suteikti struktūriškesnį pastovių verčių vaizdavimo būdą. Enum deklaracija apibrėžia fiksuotą reikšmių rinkinį, kurį gali priimti to enum tipo kintamasis. Kiekviena enum reikšmė vadinama enum konstanta.

Štai enum deklaracijos pavyzdys:

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

Šiuo atveju diena yra sąrašo pavadinimas ir jis turi septynias konstantas, žyminčias savaitės dienas. Enum taip pat gali turėti papildomų laukų ir metodų, todėl jie yra lankstesni ir galingesni nei paprastos pastovios reikšmės.

Eilutės konvertavimas į Enum:

Kai turite eilutės atvaizdą ir taip pat norite jį konvertuoti į enum, galite vadovautis skirtingomis taktikomis pagal savo poreikius. Čia pakalbėsime apie 3 įprastus šios konversijos metodus: metodo valueOf() naudojimą, tinkinto susiejimo naudojimą ir metodo Enum.ValueOf() naudojimą.

1 metodas: ValueOf() metodo naudojimas

Maksimalus tiesioginis būdas konvertuoti eilutę į enum yra naudojant valueOf() techniką, pateiktą naudojant patį sąrašą. Šis metodas paima nuoseklaus sąrašo pavadinimą kaip eilutę ir grąžina atitinkamą įprastą sąrašą, jei jis aptinkamas. Štai pavyzdys:

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

Išvestis:

 FRIDAY 

Šiame pavyzdyje eilutę „FRIDAY“ konvertuojame į Day enum, iškviesdami metodą valueOf(). Rezultatas yra Day.FRIDAY enum konstanta, kuri vėliau atspausdinama į konsolę.

Svarbu pažymėti, kad metodas valueOf() yra didžiosios ir mažosios raidės, o jei eilutė neatitinka jokios enum konstantos, bus išmestas java.lang.IllegalArgumentException. Norėdami tai padaryti, galite suvynioti konversiją į „try-catch“ bloką, kad išimtį tvarkytumėte grakščiai.

2 būdas: tinkinto atvaizdavimo naudojimas

Kai kuriais atvejais gali tekti atlikti pasirinktinį susiejimą tarp eilutės vaizdavimo ir enum konstantos. Šis metodas yra naudingas, kai eilutės reikšmės tiksliai nesutampa su enum konstantų pavadinimais. Štai pavyzdys:

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

Išvestis:

 FRIDAY 

Šiame pavyzdyje dienos sąraše yra papildomas laukas, vadinamas santrumpa, kuris reiškia trumpesnę dienos eilutę. Mes apibrėžiame pasirinktinį metodą iš Abbreviation(), kuris atlieka konversiją pagal santrumpas. Jei santrumpa atitinka bet kurią enum konstantą, grąžinama atitinkama enum konstanta; kitu atveju daroma išimtis.

3 būdas: naudojant Enum.valueOf() metodą

Trečiasis metodas apima metodo Enum.valueOf() naudojimą, kuris yra bendrosios paskirties metodas, skirtas konvertuoti eilutes į enum konstantas. Štai pavyzdys:

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

Išvestis:

 SUNDAY 

Šiame pavyzdyje enum klasę (Day.class) ir eilutės atvaizdavimą (dayString) perduodame metodui Enum.valueOf(). Jis grąžina atitinkamą enum konstantą, jei randama, arba pateikia IllegalArgumentException, jei nerandama atitikties.

Šiame straipsnyje mes ištyrėme įvairius būdus, kaip konvertuoti eilutę į eilutę Java. Aptarėme metodo valueOf() naudojimą, tinkinto atvaizdavimo kūrimą ir Enum.valueOf() metodo naudojimą. Atsižvelgdami į jūsų poreikius, galite pasirinkti tinkamiausią metodą. Nepamirškite tvarkyti išimčių, kai naudojate valueOf() metodą, ir apsvarstykite tinkintą susiejimą, kai eilutės reikšmės tiesiogiai nesutampa su enum konstantų pavadinimais.