Почему не работает замена \n?
я не джавист в чистом виде но вангую что вначале выполняется .replace() а потом уже "+" Есть ли более нормальное решение кроме какого то такого:
юзайте StringBuffer
У вас реплейс вызывается у последней строки, то есть сначала выполняется такой код:"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());