我的问题是:是否有可能在if语句中列出要搜索的一组值?或者有更好的方法吗? 例如:
Scanner input=new Scanner (System.in);
String searchTerm=input.next();
if(input==1d,2d,3d,4d,5c,1a,3x,5c,6b){
// Do stuff
}
编辑:非常抱歉,我没有意识到我的问题没有完成,甚至有点不对......天哪。现在修好了。
答案 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
}