Вы можете попробовать что-то подобное (непроверенный код):
String testString = "A|1,2,3,4|B"
String primarySeparator = "|";
String secondarySeparator = ",";
public boolean contains(String key) {
String[] parts = testString.split(primarySeparator);
List<String> values = Arrays.asList(parts[1].split(secondarySeparator)); // Point 1
String[] keyParts = key.split(primarySeparator);
if (keyParts[0].equals(parts[0])
&& keyParts[2].equals(parts[2]
&& values.contains(keyParts[1])) { // Point 2
return true;
} else {
return false;
}
}
Строка, помеченная как «Точка 1», разбивает строку, используя «|»Разделитель, выбирает второе значение, представляющее собой список чисел, разделяет его с помощью разделителя «,» и преобразует его в список.Таким образом, вы получите список со всеми вашими значениями, которые у вас есть в «СРЕДНИХ».
Затем, в «Точке 2», мы проверяем на совпадения.
Имейте в виду, что этот кодне проверено и не заботится о непредвиденных ситуациях, например, если в вашей строке неверное количество частей, разделенных "|"или если ваш список значений не содержит никакого значения.Возможно, вы захотите настроить его, чтобы учесть эти случаи.
Если вы хотите протестировать большое количество строк, вам, конечно, нужно разделить ключ только один раз.