在我的應用程序中,如果輸入匹配某些特定的20個條目,我需要分支。複雜if()或枚舉?
我想用一個枚舉
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;
}
但輸入的字符串會像「是」,「不是的在'之前','之前'等,而不是在詞之間。 我知道一個枚舉不能有包含空間的常量。
可能的方法,我可以讓出:
1,使用if語句來比較輸入發出長長的if語句像
if(input.equals("is on") ||
input.equals("is not on") ||
input.equals("is before") ...) { // function() }
2,工作20級可能的輸入插入_字之間但是即使其他輸入字符串不在20之下也可以有多個單詞。
有沒有更好的實現方法?
在Java 7中,您可以打開一個字符串。 –