Как узнать, существует ли подстрока внутри другой строки в Java 1.4?
Как я могу определить, существует ли подстрока "шаблон" (например) внутри объекта String?
Было бы здорово, если бы это была не проверка с учетом регистра.
Ответы
Ответ 1
Используйте регулярное выражение и отмечайте его как нечувствительное к регистру:
if (myStr.matches("(?i).*template.*")) {
// whatever
}
(? i) включает нечувствительность к регистру, а . * на каждом конце поискового термина соответствует любым окружающим символам (поскольку String.matches работает на всей строке).
Ответ 2
String.indexOf(String)
Для нечувствительного к регистру поиска, toUpperCase или toLowerCase как для исходной строки, так и для подстроки перед indexOf
String full = "my template string";
String sub = "Template";
boolean fullContainsSub = full.toUpperCase().indexOf(sub.toUpperCase()) != -1;
Ответ 3
Вы можете использовать indexOf() и toLowerCase(), чтобы делать тесты, нечувствительные к регистру для подстрок.
String string = "testword";
boolean containsTemplate = (string.toLowerCase().indexOf("template") >= 0);
Ответ 4
String word = "cat";
String text = "The cat is on the table";
Boolean found;
found = text.contains(word);