Предполагая, что ваши координаты являются целыми числами, вы можете сделать простое регулярное выражение, подобное этому:
^\((\d+?),(\d+?)\)$
Это даст вам три совпадающие группы. Первый для всего совпадения, второй для первой координаты, третий для второй координаты.
Вы можете решить это с помощью Java следующим образом:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Coords {
public static void main(String[] args) {
String input = "(123,456)";
final Pattern pattern = Pattern.compile("^\\((\\d+?),(\\d+?)\\)$");
final Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
int x = Integer.parseInt(matcher.group(1));
int y = Integer.parseInt(matcher.group(2));
System.out.println("X: " + x);
System.out.println("Y: " + y);
}
}
}
Также: A Хорошая отправная точка, при испытании новых регулярных выражений, здесь: https://regex101.com/
EDIT Если входные данные также должны быть разбираемы, когда после пробела запятую, вы можете сделать это:
^\((\d+?),\s+(\d+?)\)$
В Java, обратные слеши должны быть экранированы соответственно.