자바 텍스트파일 문자열 개행문자 처리 질문드려요

조회수 1861회

이미지현재 텍스트파일에서 문자를 읽어와서 처리하는 것을 짜고 있는데 (bufferedreader 사용)

싱글라인으로 되어있는건 잘 가져오는데 중간에 개행문자가 들어간 경우 개행문자 뒤 내용이 다음 라인으로 넘어가서 혹시 이 것을 보완할 방법이 없을까요? (ex . 가나다라마바사아자) *: 개행문자 ) 제가 원하는 것은 가나다라마바사아자가 한 문자열로 받아오는 것인데 결과는 가나다라 , 마바사아자 따로 나와서 ...

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 아래와 같이 각 라인을 더하면(reduce)하면 됩니다.

    jshell 은 jdk 9 이상부터 제공됩니다.

    allinux@yhjung:~$ cat out.txt
    abcde
    fegfhi
    jklmn
    
    jshell> import java.io.*
    jshell> import java.util.stream.*
    
    jshell> BufferedReader reader = new BufferedReader(new FileReader("out.txt"))
    reader ==> java.io.BufferedReader@a7e666
    
    jshell> Stream<String> lines = reader.lines()
    lines ==> java.util.stream.ReferencePipeline$Head@68bbe345
    
    jshell> String result = lines.reduce((a, b) -> a + b).get()
    result ==> "abcdefegfhijklmn"
    
    jshell> reader.close()
    
    • 답변 감사합니다 새로운걸 또 알아가네요 ㅎㅎ 혹시 가끔 텍스트파일보면 한 라인에 abcdefg 가 있는데 이 사이에 검은색 테두리의 동그라미 문자가 들어간 경우가 있잖아요 abcd@efg (@: 검은색테두리 동그라미 문자 이게 개행문자같습니다) 이럴때에 bufferedreader 는 개행문자까지만 있는다고 알고 있어서 제가 원하는 결과는 abcd@efg가 한 라인으로 다 받아오는 건데 @도 살리면서요 ㅎㅎ 이걸 해결할 방법은 없을까요? 알 수 없는 사용자 2018.5.27 05:04
    • 개행 즉 라인피드는 0D 0A 문자이고 십진수로 13 10 입니다. 개행문자에 @가 들어갈 수 없습니다. 원본파일을 올려보세요. 정영훈 2018.5.27 06:15
    • 답변 감사합니다! 텍스트파일 캡쳐해서 올렸습니다. 저 검은 동그라미를 복사해서 써보면 엔터처럼 사용되는데요 제가 원하는건 thanks@good을 같은 라인으로 받는 것입니다. bufferedReader로 읽으면 저 @ 문자때문에 thanks와 good이 분리되어서 그렇습니다. 라인으로 받아서 라인에 포함된 문자열 특성에 따라 포맷을 수정하는 작업을 하고 있습니다. 읽어주셔서 감사합니다. 알 수 없는 사용자 2018.5.27 08:31
    • 해당파일을 allinux36@gmail.com 으로 보내보세요 확인해드릴게요 정영훈 2018.5.28 00:04

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)