java - 如何在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.
解决方案
您首先需要找到选中的 DictionaryEnum:
DictionaryEnum de = DictionaryEnum.valueOf(keywords[0].toUpperCase());
之后,您可以使用给定 Enum 的数据结构打印出您想要的内容。
注意:我不会对字典之类的东西使用不可修改的数据结构,因为将来您很可能想要添加来自其他来源的条目。
推荐阅读
- angular - 为什么阿波罗角查询返回空数组?
- c# - 2个组合框c#的相同SelectedIndexChanged函数
- c++ - 内存屏障对其他线程的数据可见性的影响
- sql - 与 group by 结合的平均值与子查询中的直接平均值有何不同?
- docker - 从 docker 文件创建 docker 映像的问题
- jenkins - OCP - Jenking 持久 - 旧版本?
- mysql - MySQL Set 0 if null (SUM CASE) 不起作用
- r - 总结以基于标准开始的当前观察结果
- python - Python:如何创建一个以 24 小时格式读取时间并在时间增加 1 秒后显示时间的程序?
- java - arraylist 的内容使用 println 打印。我希望我创建的对象具有类似的功能,而无需在 java 中使用 toString() 函数