click fraud protection
«перечисление” — жизненно важная функция Java, которая позволяет разработчику хранить данные с гибкими ограничениями. Например, хранение данных внутри или вне класса в соответствии с требованием. В таких случаях использование перечисления и преобразование его в строку в Java помогает хранить и эффективно получать доступ к данным по сравнению с другими подходами.
В этой статье будут обсуждаться методологии преобразования перечисления в строку в Java.
Что такое «перечисление» в Java?
“перечисление” – это сокращенная форма перечисления. Это ключевое слово используется для создания перечисления, и это специальный класс, соответствующий группе констант. Эти константы объявлены внутри «перечисление” и разделяются запятой. Вы также можете объявлять как внутри, так и снаружи класса.
Как преобразовать/преобразовать Enum в строку с помощью Java?
Перечисление можно преобразовать в строку с помощью Java, используя следующие подходы:
Подход 1: преобразование Enum в строку в Java с использованием метода «toString()»
“нанизывать()” используется для получения строкового объекта, который соответствует значению числового объекта и может быть перезаписан. Этот метод можно использовать для простого преобразования значений перечисления в строки, ссылаясь на перечисление.
Синтаксис
Строка в строку ( )
Приведенный выше синтаксис возвращает имя константы перечисления.
Пример
Пройдите приведенный ниже пример:
Примеры пакетов;
Пример публичного класса <
данные перечисления <
АНКАРА, КАНБЕРРА, ЛОНДОН;
>
публичная статическая пустота главная ( Нить [ ] аргументы ) <
System.out.println ( «Строковое значение: » +данные. АНКАРА.toString ( ) ) ;
System.out.println ( «Строковое значение: » +данные. CANBERRA.toString ( ) ) ;
System.out.println ( «Строковое значение: » +данные. ЛОНДОН.toString ( ) ) ;
> >
В приведенных выше строках кода:
- Создайте перечисление с именем «данныеаккумулируя заявленные значения в столицах.
- Обратите внимание, что перечисление здесь объявлено внутри класса.
- Наконец, используйте «точка», чтобы напрямую указывать на значения перечисления и отображать их в строковом представлении с помощью «нанизывать()метод.
Выход
В приведенном выше выводе видно, что значения доступны и отображаются в виде строки.
Подход 2: преобразование/преобразование Enum в строку в Java с использованием метода «name()»
“имя()» класса Enum дает имя константы перечисления, такое же, как объявлено в его (перечислении) объявлении. Этот метод, в отличие от «нанизывать()», является окончательным и не может быть перезаписан.
Синтаксис
общедоступное окончательное имя строки ( )
В приведенном выше синтаксисе «имя()” дает имя этого перечисления.
Пример
Давайте рассмотрим приведенный ниже пример:
Примеры пакетов;
данные перечисления <
АНКАРА, КАНБЕРРА, ЛОНДОН;
>
Пример публичного класса <
публичная статическая пустота главная ( Нить [ ] аргументы ) <
System.out.println ( «Строковое значение: » +данные. АНКАРА.название ( ) ) ;
System.out.println ( «Строковое значение: » +данные. CANBERRA.имя ( ) ) ;
System.out.println ( «Строковое значение: » +данные. ЛОНДОН.название ( ) ) ;
> >
В приведенном выше фрагменте кода:
- Аналогичным образом определите перечисление с именем «данные”, содержащий заданные значения.
- В этом конкретном подходе «перечисление” объявлен вне класса.
- Теперь аналогичным образом обратитесь к содержащимся значениям и извлеките строковое представление, используя связанный «имя()метод.
Выход

Как видите, строковое представление перечисления выбрано правильно.
Заключение
Перечисление, названное перечислением в Java, может быть преобразовано в строку с помощью «нанизывать()«метод» или «имя()метод. Оба этих подхода преобразуют перечисление, указанное внутри и вне класса, в строки соответственно. В этом блоге изложены подходы к преобразованию enum в строку в Java.
Преобразование строки в элемент enum
Только я получаю его как String, а нужно что бы вернул типа enum PriorityType. Как выкрутиться из этой ситуации?
Отслеживать
23.4k 3 3 золотых знака 49 49 серебряных знаков 70 70 бронзовых знаков
задан 10 апр 2015 в 6:06
duddeniska duddeniska
3,948 17 17 золотых знаков 66 66 серебряных знаков 112 112 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для преобразования строки в элемент enum в каждом enum’е есть метод valueOf :
PriorityType high = PriorityType.valueOf("HIGH");
Этот метод чувствителен к регистру, передаваемая строка должна в точности повторять имя элемента enum’а.
Ещё один вариант, позволяющий кастомизировать строки, на основании которых создаются элементы enum’а. Он строится на основе использования конструктора и реализации своего метода преобразования строки в елемент enum’а:
public enum PriorityType < LOW("LowPrioroty"), MIDDLE("MiddlePrioroty"), HIGH("HighPrioroty"); private String value; private PriorityType(String value) < this.value = value; >public static PriorityType fromString(String value) < if (value != null) < for (PriorityType pt : PriorityType.values()) < if (value.equalsIgnoreCase(pt.value)) < return pt; >> > throw new IllegalArgumentException("No such value"); > > PriorityType low = PriorityType.fromString("lowpriority");
Java — конвертировать строку в объект Enum
В Java вы можете использовать Enum valueOf() Чтобы преобразовать String в объект Enum, просмотрите следующий пример:
1. Пример Java Enum
package com.csharpcoderr.whois.utils; public enum WhoisRIR < ARIN("whois.arin.net"), RIPE("whois.ripe.net"), APNIC("whois.apnic.net"), AFRINIC("whois.afrinic.net"), LACNIC("whois.lacnic.net"), JPNIC("whois.nic.ad.jp"), KRNIC("whois.nic.or.kr"), CNNIC("ipwhois.cnnic.cn"), UNKNOWN(""); private String url; WhoisRIR(String url) < this.url = url; >public String url() < return url; >>
2. Проблема
Если задана строка «arin», как преобразовать ее обратно в указанный выше объект Enum?
package com.csharpcoderr.whois.utils; public class TestEnum < public static void main(String[] args) < // Как конвертировать это? WhoisRIR rir = "arin"; >>
3. Решение
Чтобы решить это, вы можете использовать enum valueOf() функция и преобразовать строку в объект Enum.
ЧИТАТЬ ТАКЖЕ: Котлин — Как зациклить карту
package com.csharpcoderr.whois.utils; import java.util.Locale; public class Test < public static void main(String[] args) < // Решение: использует valueOf () System.out.println(WhoisRIR.valueOf("arin".toUpperCase())); // Рекомендуемое решение: добавить локаль WhoisRIR rir = WhoisRIR.valueOf("ripe".toUpperCase(Locale.ENGLISH)); System.out.println(rir); System.out.println(rir.url()); // Ошибка, нет константы перечисления, чувствительна к регистру //System.out.println(WhoisRIR.valueOf("arin ")); >>
АРИН RIPE whois.ripe.net
Рекомендации
- Oracle — JDK 7 Enum JavaDoc
- Oracle: строка в верхний регистр JavaDoc
- Oracle Doc — Типы Enum
Перечисления Enum в Java — Часть 2

В предыдущей статье ( Урок 66: Перечисления Enum в Java ) мы рассмотрели что такое Enum в Java. Абстрактный класс Enum появился в 5-й версии Java. Теперь, благодаря абстрактному классу Enum мы можем быстро и легко создавать перечисления без написания повторяющегося кода.
В этой статье мы рассмотрим на конкретных примерах следующее:
1. К Enum можно применять методы:
- name() — возвращает имя
- ordinal() — возвращает порядковый номер
- equals()
- hashCode()
- toString()
- finalize()
- clone()
- values()
- valueOf()
2. Enum реализовывает интерфейс Comparable
3. Enum реализовывает интерфейс Serializable
Иииииии сразу в бой Создадим простой enum Color
