首页 > 解决方案 > 如何在java中反转枚举元素的内容

问题描述

所以这是我的枚举结构。

public enum DictionaryEnum {
        ARROW(
                "Arrow",
                new String[] {
                        "noun"
                },
                new String[] {
                        "Here is one arrow: <IMG> -=>> </IMG>"
                }
        ),
        BOOK(
                "Book",
                new String[]{
                        "noun",
                        "noun",
                        "verb",
                        "verb"
                },
                new String[]{
                        "A set of pages.",
                        "A written work published in printed or electronic form.",
                        "To arrange for someone to have a seat on a plane.",
                        "To arrange something on a particular date."
                }
        );

基本上,如果用户输入反向书籍。输出应该是单词 book 的反向定义。

这是我到目前为止所拥有的:

String[] keywords = input.split(" ");
            String key = keywords[0];
            String[][] result = dictionary.get(key);

    if (keywords[1].toLowerCase().equals("reverse") && !keywords[1].toLowerCase().equals("distinct")) {
                        for (int i = DictionaryEnum.values().length - 1; i >= 0; --i) {
                            DictionaryEnum e = DictionaryEnum.values()[i];
                            System.out.println(e);
                        }
                    }

但正如您可以猜到的,它输出整个枚举结构的反转,而不是结构内部单个术语的反转。

例如:如果用户输入“book”,那么输出应该是:

Book [noun] : A set of pages.
Book [noun] : A written work published in printed or electronic form.
Book [verb] : To arrange for someone to have a seat on a plane.
Book [verb] : To arrange something on a particular date.

如果在“book reverse”中输入,输出应该是

Book [verb] : To arrange something on a particular date.
Book [verb] : To arrange for someone to have a seat on a plane.
Book [noun] : A written work published in printed or electronic form.
Book [noun] : A set of pages.

标签: javadata-structuresenumerator

解决方案


您首先需要找到选中的 DictionaryEnum:

  DictionaryEnum de = DictionaryEnum.valueOf(keywords[0].toUpperCase());

之后,您可以使用给定 Enum 的数据结构打印出您想要的内容。

注意:我不会对字典之类的东西使用不可修改的数据结构,因为将来您很可能想要添加来自其他来源的条目。


推荐阅读