Что я хотел бы сделать, это проверить, содержит ли строка элемент из массива String. Я думаю, что итерация всех элементов массива и просмотр, если String.contains (элемент) не кажется эффективным. Поэтому я задаюсь вопросом, есть ли более эффективный способ быстро сделать этот поиск.Java - как проверить, содержит ли строка элемент массива строк?
Например, я хочу получить название страны из адресной строки. Пользователи могут писать свой адрес без каких-либо ограничений. Строка адреса может содержать название страны или название города. Поэтому я хочу посмотреть, есть ли в адресной строке элемент из массива, который я создам, с несколькими именами стран и названиями городов.
Мой текущий решение:
ArrayList<String> list;
String address;
...
for (String s : list) {
if (address.contains(s))
return s;
}
Это О (п). Интересно, есть ли более быстрое решение.
спасибо.
У вас есть пример кода? –
Если массив элементов не был слишком длинным, я бы просто повторил. Вы можете альтернативно построить «динамическое» регулярное выражение 'Pattern', но это похоже на большую работу, чем это было бы полезно. – jedwards
Если он может сохранить шаблон, использовать его было бы лучше. –