есть строка "kldm" и в ней нужно проверить, есть ли буквы из "l,p,o,k,j,s,h,r", думаю реализовать .contains, но как сделать, чтобы он не 1 букву искал, и не слово, а "l,p,o,k,j,s,h,r" - все эти буквы.
С помощью регулярного выражения:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
public class RegexDemo {
public static void main(String[] args) {
boolean notFound = true;
// сюда вставить строку в которой будем искать
String input = "kldm";
// сюда вставить регулярное выражение
String regex = "[lpokjshr]";
try {
System.out.println("Проверяемая строка: " + input);
System.out.println("Регулярное выражение: " + regex);
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
while (m.find()) {
notFound = false;
System.out.println("Найдено [" + m.group() + "] начало в "
+ (m.start() + 1) + " позиции и конец в " + m.end() + " позиции.");
}
} catch (PatternSyntaxException pse) {
System.err.println("Bad regex: " + pse.getMessage());
System.err.println("Description: " + pse.getDescription());
System.err.println("Index: " + pse.getIndex());
System.err.println("Incorrect pattern: " + pse.getPattern());
}
if (notFound) System.out.println("Ничего не найдено!!!");
}
}
Результат:
Проверяемая строка: kldm
Регулярное выражение: [lpokjshr]
Найдено [k] начало в 1 позиции и конец в 1 позиции.
Найдено [l] начало в 2 позиции и конец в 2 позиции.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей