Я создаю валидатор для ввода в одном из моих текстовых полей в java. Длина поля ввода должна быть 10, а значения должны быть любого числа между 1-9. Уловка, вход должен использовать тот же символ только 10x... Таким образом, допустимые значения должны быть такими, как:
1111111111
2222222222
....
9999999999
Но если введенный текст - это что-то вроде 111111112, это следует считать недопустимым.
В настоящее время я использую String.matches("^ [0-9] + $"), чтобы проверить, допустимы ли введенные значения, но это все равно принимает 111111112 как действительный. Каков правильный подход, чтобы проверить, одинаково ли все 10 символов строки?
Вы можете сделать это, используя обратную ссылку:
String.matches("^([0-9])\1{9}$")
или:
String.matches("^([0-9])\\1{9}$")
Это соответствует только 10 цифрам в строке, которые все одинаковы.