Я думаю, все, что вам нужно, это просто:
while (!weiterInput.matches("[XY]?")){...}
Редактировать:
Я также могу проверить строчные и другие варианты (да, ДА, Да, y, Y) с меньшим количеством кода
В этом случае просто измените регулярное выражение на:
if (!weiterInput.matches("(?i)(yes|y)?")){
Обратите внимание, что (?i)
будет соответствовать регистронезависимому, поэтому небеспокоиться о ДА, да, Y ..