Перейти к содержимому

Как enum преобразовать в string java

  • автор:

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

Рекомендации

  1. Oracle — JDK 7 Enum JavaDoc
  2. Oracle: строка в верхний регистр JavaDoc
  3. 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *