【发布时间】:2012-06-14 11:37:30
【问题描述】:
在我的应用程序中,如果输入匹配某些特定的 20 个条目,我需要进行分支。
我想过使用枚举
public enum dateRule { is_on, is_not_on, is_before,...}
并打开枚举常量以执行功能
switch(dateRule.valueOf(input))
{
case is_on :
case is_not_on :
case is_before :
.
.
.
// function()
break;
}
但是输入字符串会像'is on'、'is not on'、'is before'等,单词之间没有_。 我了解到枚举不能有包含空格的常量。
可能的方法:
1、使用 if 语句比较 20 个可能的输入,给出类似长 if 语句的输入
if(input.equals("is on") ||
input.equals("is not on") ||
input.equals("is before") ...) { // function() }
2,处理输入以在单词之间插入 _,但即使其他不属于这 20 个单词的输入字符串也可以包含多个单词。
有没有更好的方法来实现这个?
【问题讨论】:
-
在 Java 7 中你可以打开一个字符串。