#java #string #parsing
#java #строка #синтаксический анализ
Вопрос:
Я не понимаю, как работает метод replaceAll. Более конкретно, первый аргумент принимает регулярное выражение string. Я хотел бы удалить все символы, которые не являются числом, включая точки.
моя реализация.
userId = inputRow.next().replaceAll("[\.^\d.]", "");
Пример вывода:
"","",""
"","",""
"","",""
"","BBLDX",""
"","N",""
"","",""
"","",""
"","",""
"","",""
"","",""
"","",""
"","",""
"","",""
"","",""
Это удаление всего, кроме алфавитов
Комментарии:
1. Это оставляет только алфавитные символы. Я просто хотел цифры. @Alex
Ответ №1:
Вы можете сделать это таким образом:
userId = inputRow.next().replaceAll("[^\d]", "");
[^\d] сопоставит всю последовательность символов, которая не является числом, и заменит ее пустой строкой.
Ответ №2:
У вас ошибка в регулярном выражении.
Это должно быть «[^\d]».
Это заменит все символы, которые не являются цифрами.
Ответ №3:
String text = "afadsfas1234fasdfadsf.fasdf.sadfadsf.afadsf.5678";
System.out.println(text);
// /D is equal to a non digit. [^0-9]
String result = text.replaceAll("[\.\D]", "");
System.out.println(result);
//Result will be 12345678
Приведенный выше код поможет вам удалить все символы, которые не являются числом, включая точки.
d для чисел 0-9 и D для неразрядных чисел.