私のアプリでは、入力が特定の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;
}
ただし、入力文字列は、単語間に_がない場合、「オン」、「オンではない」、「前」などのようになります。列挙型はスペースを含む定数を持つことができないことを学びました。
私が理解できる可能性のある方法:
1、ifステートメントを使用して、次のような長いifステートメントを与える20の可能な入力を比較します。
if(input.equals("is on") ||
input.equals("is not on") ||
input.equals("is before") ...) { // function() }
2、入力で作業して単語の間に_を挿入しますが、この20に該当しない他の入力文字列でも複数の単語を含めることができます。
これを実装するためのより良い方法はありますか?