matches enum и массива строк
if(strArr[0].matches("тест")) {
return true;
} else {
return false;
}
Хочу матчить первый элемент массива строк и первую константу списка enum (вместо слова "тест"). А в список занесу запрещенные слова.
Как это реализовать?
Ответы (1 шт):
Автор решения: Agzam4
→ Ссылка
Вот написал много полезных функций:
Функция которую требует Ваш вопрос - matches
Инфо о других функциях:
hasString(параметр 1,параметр 2) - проверяет есть ли в строке-параметр 1 элемент №параметр 2
checkAll(параметр 1) - проверяет есть ли в строке-параметр 1 хотя бы один елемент из enum
public static void main(String[] args) {
// Проверка matches
System.out.println(matches("тест", 0));
System.out.println(matches("T0", 0));
// Проверка прочих функций:
// hasString - проверяет есть ли в строке<параметр 1> элемент №<параметр 2>
System.out.println(hasString("To T", 0));
System.out.println(hasString("To T0", 0));
System.out.println(hasString("To T0", 1));
// checkAll - проверяет есть ли в строке<параметр 1> хотя бы один елемент из enum
System.out.println(checkAll("Test - T0"));
System.out.println(checkAll("Test - T4"));
System.out.println(checkAll("Test - T"));
}
private static boolean checkAll(String str) {
ArrayList<Test> arr = getList();
for (Test test : arr)
if(-1 != str.indexOf(test.toString()))
return true;
return false;
}
private static boolean hasString(String str, int id) {
return -1 != str.indexOf(getElement(id));
}
public static boolean matches(String str, int id) {
return getElement(id).equals(str);
}
public static String getElement(int id) {
return getList().get(id).toString();
}
private static ArrayList<Test> getList() {
return new ArrayList<Test>(Arrays.asList(Test.values()));
}
public enum Test {
TEST0 ("T0"),
TEST1 ("T1"),
TEST2 ("T2"),
TEST3 ("T3"),
TEST4 ("T4");
private String string;
Test(String string) {
this.string = string;
}
@Override
public String toString() {
return string;
}
}