Ваше регулярное выражение неверно, потому что звездочка - это метасимвол, для которого нужен шаблон перед ним. Вы можете попробовать что-то вроде этого:
if (STRING.matches("[^-]*-[^-]*"))
{
//Do something
} else {
//Do something else
}
Лучше, вероятно, использовать String # split ("-") и поместить это в массив. Затем вы можете проверить длину этого массива, чтобы увидеть, сколько там чисел, а затем использовать Integer.parseInt для каждой подстроки, чтобы получить натуральное число.
Другой способ - использовать Matcher для поиска нескольких групп. Если (\d)*
является регулярным выражением, совпадающим с натуральным числом, вы можете сделать это:
Pattern pattern = Pattern.compile("(\\d)*");
Matcher matcher = pattern.matcher(input);
matcher.find();
String first = matcher.group();
if (matcher.find()) {
String second = matcher.group(); //this means there are two numbers
}