다른 답변에서 언급했듯이 대상이 변경되지 않기 때문에 코드가 주로 작동 String.replace(...)
하지 않습니다 String
. ( replace
실제로는 Java 문자열을 변경할 수 없습니다!) 실제로 String
필요한 것은 문자가 변경되면 새 객체 를 만들어 반환하는 것 입니다. 그러나 코드는 그것을 버립니다 String
...
가능한 해결책은 다음과 같습니다. 어떤 것이 가장 정확한지 정확히 무엇을 하려는지에 달려 있습니다.
// #1
text = text.replace("\n", "");
개행 문자를 모두 제거하기 만하면됩니다. 이것은 Windows 또는 Mac 회선 종료에 대응하지 않습니다.
// #2
text = text.replace(System.getProperty("line.separator"), "");
현재 플랫폼에 대한 모든 줄 종결자를 제거합니다. 이것은 Windows에서 UNIX 파일을 처리하려는 경우 또는 그 반대의 경우에는 대응하지 않습니다.
// #3
text = text.replaceAll("\\r|\\n", "");
모든 Windows, UNIX 또는 Mac 줄 종결자를 제거합니다. 그러나 입력 파일이 텍스트 인 경우 단어를 연결합니다. 예 :
Goodbye cruel
world.
된다
Goodbye cruelworld.
따라서 실제로 이것을하고 싶을 수도 있습니다.
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
각 줄 종결자를 공백으로 바꿉니다. Java 8부터는 다음을 수행 할 수도 있습니다.
// #5
text = text.replaceAll("\\R", " ");
여러 줄 구분 기호를 하나의 공백으로 바꾸려면 다음을 수행하십시오.
// #6
text = text.replaceAll("\\R+", " ");