Использование регулярных выражений с множествами в Java - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть набор в Java с различными строками, такими как '+ Cat', '+ Dog', et c. У меня также есть строка, как показано ниже.

animals = '+Cat|+Dog|+Goat'

В принципе, если набор содержит любое из животных, перечисленных в животных, я хочу вернуть false. Как бы я go об этом? Я не уверен, что вы можете использовать регулярные выражения с содержанием. Кроме того, тот факт, что в моей строке есть +, усложняет регулярное выражение.

Ответы [ 2 ]

6 голосов
/ 07 апреля 2020
public boolean containCheck(Set<String> newset) {
    String animals = "+Cat|+Dog|+Goat";
    for (String op : animals.split("\\|")) {
        if (newset.contains(op)) {
            return false;
        }
    }
    return true;
}
1 голос
/ 07 апреля 2020

Вы можете разбить строку в массиве и использовать для l oop, чтобы проверить, что набор содержит любые элементы, представленные в массиве.

public Boolean isContaining(String animals, Set<String> sets ) {
    for (String s : animals.split("\\|")) {
        for (String set : sets) {
            if (s.equals(set)) {
                return false;
            }
        }
    }
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...