Java enum ir spēcīgi datu tipi, kas attēlo fiksētu konstantu kopu. Tos parasti izmanto, lai iezīmētu noteiktu vērtību kopu, ko objekts var iegūt. Dažreiz, iespējams, vēlēsities pārvērst virknes ilustrāciju uzskaites vērtībā. Šajā kontekstā mēs izpētīsim dažādas stratēģijas, lai pārvērstu virkni par enum Java, piedāvājot jums visu programmu labākai izpratnei.
Enum izpratne Java valodā:
Pirms iedziļināties konvertēšanas procesā, īsi atkārtosim Java enum. Uzskaitījumi jeb saīsināti enum tika ieviesti Java 5, lai nodrošinātu strukturētāku konstantu vērtību attēlošanas veidu. Enum deklarācija definē fiksētu vērtību kopu, ko var pieņemt šī enum tipa mainīgais. Katru enum vērtību sauc par enum konstanti.
Šeit ir enum deklarācijas piemērs:
public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
Šajā gadījumā diena ir enum nosaukums, un tai ir septiņas konstantes, kas apzīmē nedēļas dienas. Enum var būt arī papildu lauki un metodes, padarot tās elastīgākas un jaudīgākas nekā vienkāršas konstantas vērtības.
Virknes pārvēršana par Enum:
Ja jums ir virknes attēlojums un arī vēlaties to pārveidot par enumu, varat izmantot dažādas taktikas atbilstoši savām prasībām. Šeit mēs runāsim par 3 izplatītām metodēm šī reklāmguvuma veikšanai: metodes valueOf() izmantošana, pielāgotas kartēšanas izmantošana un metodes Enum.ValueOf() izmantošana.
1. metode: ValueOf() metodes izmantošana
Maksimālais tiešais veids, kā pārvērst virkni enum, ir izmantot valueOf() tehniku, kas nodrošināta ar paša enum palīdzību. Šī pieeja izmanto konsekventa enum nosaukumu kā virkni un atgriež atbilstošo enum regulāru, ja tas tiek atklāts. Šeit ir piemērs:
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 } }
Izvade:
FRIDAY
Šajā piemērā mēs pārvēršam virkni “FRIDAY” par dienu enum, izsaucot metodi valueOf(). Rezultāts ir Day.FRIDAY enum konstante, kas pēc tam tiek izdrukāta konsolē.
Ir svarīgi ņemt vērā, ka metode valueOf() ir reģistrjutīga, un, ja virkne neatbilst nevienai enum konstantei, tiks izmests java.lang.IllegalArgumentException. Lai to paveiktu, varat ietīt reklāmguvumu “try-catch” blokā, lai graciozi apstrādātu izņēmumu.
2. metode: pielāgotas kartēšanas izmantošana
Dažos gadījumos, iespējams, būs jāveic pielāgota kartēšana starp virknes attēlojumu un enum konstanti. Šī pieeja ir noderīga, ja virknes vērtības precīzi neatbilst enum konstantu nosaukumiem. Šeit ir piemērs:
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 } }
Izvade:
FRIDAY
Šajā piemērā dienas sarakstam ir papildu lauks, ko sauc par saīsinājumu, kas apzīmē īsāku dienas virknes attēlojumu. Mēs definējam pielāgotu metodi no Abbreviation(), kas veic konvertēšanu, pamatojoties uz saīsinājumu. Ja saīsinājums atbilst jebkurai enum konstantei, tiek atgriezta atbilstošā enum konstante; pretējā gadījumā tiek izmests izņēmums.
3. metode: metodes Enum.valueOf() izmantošana
Trešā metode ietver metodes Enum.valueOf() izmantošanu, kas ir vispārēja metode virkņu pārvēršanai par enum konstantēm. Šeit ir piemērs:
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 } }
Izvade:
SUNDAY
Šajā piemērā mēs nododam enum klasi (Day.class) un virknes attēlojumu (dayString) metodei Enum.valueOf(). Tas atgriež atbilstošo enum konstanti, ja tiek atrasts, vai izdod IllegalArgumentException, ja atbilstība netiek atrasta.
Šajā rakstā mēs izpētījām dažādas metodes virknes pārvēršanai par enumu Java. Mēs apspriedām metodes valueOf() izmantošanu, pielāgotas kartēšanas izveidi un metodes Enum.valueOf() izmantošanu. Atkarībā no jūsu prasībām jūs varat izvēlēties vispiemērotāko pieeju. Neaizmirstiet rīkoties ar izņēmumiem, izmantojot metodi valueOf(), un apsveriet pielāgotu kartēšanu, ja virknes vērtības tieši nesakrīt ar enum konstantu nosaukumiem.