列出要搜索的一组值的可能性

时间:2013-11-06 16:56:06

标签: java search if-statement

我的问题是:是否有可能在if语句中列出要搜索的一组值?或者有更好的方法吗? 例如:

Scanner input=new Scanner (System.in);
String searchTerm=input.next();

if(input==1d,2d,3d,4d,5c,1a,3x,5c,6b){
    // Do stuff
}
编辑:非常抱歉,我没有意识到我的问题没有完成,甚至有点不对......天哪。现在修好了。

8 个答案:

答案 0 :(得分:4)

if (!Arrays.asList(1d,2d,3d,4d,5c,1a,3x,5c,6b).contains(input)) {
    // do stuff
}

答案 1 :(得分:2)

我建议使用一个列表:

  • 添加值以搜索列表。
  • 如果输入是其中一个值,请使用List.contains(Object o) (documentation)进行检查。

答案 2 :(得分:1)

您可以从值创建列表,然后检查包含

if (list.contains(input))

答案 3 :(得分:1)

使用Arrays.asList将其转换为List并使用contains

if (!Arrays.asList("1d", "2d", "3d", "4d", "5c", "1a", "3x", "5c", "6b").contains(input)) {
    // Do stuff
}

答案 4 :(得分:1)

创建一个新集合,看看是否在那里找到了值:

if(!(Arrays.AsList("1d", "2d", "3d", "4d").Contains(input))){ }

答案 5 :(得分:1)

将值集放入集合中。例如:

Set<String> invalidInputs = new HashSet<String>();
validInputs.add("1d"); //and all the rest

然后检查该集合是否包含输入:

if(!invalidInputs.contains(input) {
    //do stuff
}

答案 6 :(得分:1)

您需要使用if语句进行单独比较(这不使用Java更高级的东西)。如果您想比较多个值,我建议使用Switch语句。

switch (input){
    case '1d': case '2d': case '3d': case '4d': case '5c': case '1a': case '3x': case '6b':
        //do something
        break;
    default:
        //do something
}

答案 7 :(得分:1)

尝试使用数组。

String[] test= {"1d","2d","3d","4d","5c","1a","3x","5c","6b"};
        for(int i=0;i<test`length;i++)
            if(!input.contentEquals(test[i]))
            {
                //Something
            }