nuclear_kote
@nuclear_kote

Почему не работает замена \n?

System.out.println("GET http://www.example.com/example.js HTTP/1.1\n" +
                "Host: www.example.com\n" +
                "Proxy-Connection: keep-alive\n" +
                "If-Modified-Since: Wed, 06 Jul 2016 07:58:20 GMT\n\n".replaceAll("\n", "E"));


в итоге заменяются только последние 2 символа

Есть ли более нормальное решение кроме какого то такого:
Pattern pattern = Pattern.compile("\n", Pattern.MULTILINE);
        System.out.println(pattern.matcher("GET http://www.example.com/example.js HTTP/1.1\n" +
                "Host: www.example.com\n" +
                "Proxy-Connection: keep-alive\n" +
                "If-Modified-Since: Wed, 06 Jul 2016 07:58:20 GMT\n\n").replaceAll("E"));
  • Вопрос задан
  • 143 просмотра
Решения вопроса 2
@Stqs
senior software developer
я не джавист в чистом виде но вангую что вначале выполняется .replace() а потом уже "+"

Есть ли более нормальное решение кроме какого то такого:

юзайте StringBuffer
Ответ написан
Комментировать
@MaxLich
java developer
У вас реплейс вызывается у последней строки, то есть сначала выполняется такой код:
"If-Modified-Since: Wed, 06 Jul 2016 07:58:20 GMT\n\n".replaceAll("\n", "E")

"" - это объект типа String,
replaceAll() - это его метод.
Ваш код равносилен:
MyClass myObj = new MyClass(); 
System.out.println(myObj.replace().toString());
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы