2013-11-06 1 views
0

Мой вопрос: есть ли возможность листинга набора значений для поиска в if-statement? Или есть лучший способ сделать это? , например:Возможность перечисления набора значений для поиска

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

if(input==1d,2d,3d,4d,5c,1a,3x,5c,6b){ 
    // Do stuff 
} 

EDIT: очень жаль, что я не понимаю, мой вопрос не был завершен, и даже своего рода неправильно ... Гоша. Исправлено.

+0

Действительно ли это строки для поиска, например. '" 1d "," 2d "и т. Д.? – rgettman

+0

[Collection.contains] (http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html#contains%28java.lang.Object%29) или [Collection.containsAll] (http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html#containsAll%28java.util.Collection%29), может быть? Ваш вопрос непонятен. – m0skit0

ответ

1

Вы можете создать список из значений, а затем проверить, содержит

if (list.contains(input)) 
+1

Любая 'Collection' будет работать, вам не нужен« Список ». – m0skit0

+0

Yup .. любая коллекция сделает – odedsh

1

Преобразование их в List с помощью Arrays.asList и использовать contains:

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

Создать новую коллекцию и посмотреть, если можно найти там:

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

Поместите набор значений в коллекцию. Например:

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

Затем проверьте, чтобы увидеть, если набор содержит вход:

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

+1 первый, чтобы получить '!' Там. –

+0

@peeskillet Взгляд нонсенс. – m0skit0

+0

@ m0skit0, что? Он понял это правильно. Не единственная причина - это '!'. –

2

я предлагаю использовать список:

  • Добавьте значения для поиска к списку.
  • Проверьте с помощью List.contains(Object o)(documentation), если вход является одним из значений.
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 
} 
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 
      } 
Смежные вопросы