Я не смог четко сформулировать вопрос. Но тем не менее вот:
Например, я имею строку "синхрофазотрон" и подстроку "схрон". Функция должна вернуть true, так как данную подстроку можно получить, если пропускать некоторые символы. Суть в том, что нужно сохранить очередность, подстроки хранятся в массиве строк. Есть ли в Java встроенные функции, которые смогут это сделать?
У меня была идея, преобразовать подстроку в регулярное выражение, что-то типа "с*х*р*о*н"
и использовать matches()
.
UPD:
По поводу регулярных выражений. Преобразование строки в регулярное выражение и использовать matches()
не так уж и трудно реализовать. Но что если у тебя массив подстрок насчитывает больше сотни тысяч элементов, и некоторые из них могут достигать в длине 20 символов?
Встроенных нет, но реализовать не сложно:
public static boolean containsSparse(String string, String substring) {
int index = 0;
for (char character : substring.toCharArray()) {
index = string.indexOf(character, index);
if (index == -1)
return false;
}
return true;
}
Итерируем и проверяем:
public static boolean containsSequence(String string, String substring) {
int lastIndex = 0;
for (int i = 0; i < substring.length(); i++) {
int index = string.substring(lastIndex).indexOf(substring.charAt(i));
if (index == -1)
return false;
lastIndex = lastIndex + index;
}
return true;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть у нас кнопкаМы задаём ей onClick (назовём его так же — onClick)
Итак есть у меня jsp в которой есть формаВ форму человек вводит данные и они отправляются на обработку сервлету
Хочу унаследоваться от Floating Action Button в отдельный класс, чтобы определить в этом классе всё, что связано в этой кнопкой