Почечему с replace валидатор принимает решение, а с replaceAll нет?
В чем разница между методами в данном случае?
while (reader.ready())
{
writer.write(reader.readLine().replace(".", "!"));
}
Samummm
1 уровень
Почечему с replace валидатор принимает решение, а с replaceAll нет?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Стас ПасинковSoftware Developer в ZipyMaster
25 августа 2022, 23:05
на самом деле все просто. риплейс принимает строку символов, которые надо заменить. а риплейс-ол - принимает регулярку, согласно которой будет замена.
об этом написано в документации
в регулярных выражениях точка обозначает любой символ. поэтому если бы вы запустили свое решение - то увидели бы, что он вам всю строку заменил на !!!!!!!
в регулярных выражениях точка обозначает любой символ. поэтому если бы вы запустили свое решение - то увидели бы, что он вам всю строку заменил на !!!!!!! +7
Samummm Java Developer
26 августа 2022, 06:51
Спасибо!!!
Хитро!!!
Т.е. если в репласе ол замаскировать точку то будет все работать?
Типа так
"\\." .
0
Стас ПасинковSoftware Developer в ZipyMaster
26 августа 2022, 08:10
попробуйте, запустите
+2
Samummm Java Developer
26 августа 2022, 09:42
Ура!!! Работает!!!
0
Jane
25 августа 2022, 14:36
Полагаю что связано с тем, что replace() работает с символами, то есть с char, а replaceAll() работает со строками.
Мы используем метод read() и он считывает символы - поэтому replaceAll() и не подходит.
+2