2020. 12. 2. 22:52ㆍProgramming Language/JAVA
Escape String : \를 앞에 붙여 php에 정의되어 있는 원래의 의미를 벗어나는(escape) 문자들
\\ : 백슬래시
\n: 개행문자 (LineFeed - 커서를 다음 줄로 이동)
\r: 개행 문자 (CarriageReturn - 커서를 현재 줄의 맨 앞으로 이동)
\t: 탭 문자
\': 작은 따옴표 (작은따옴표 안에서 작은따옴표를 쓰고싶을 때)
\": 큰 따옴표 (큰 따옴표 안에서 큰 따옴표를 쓰고싶을 때)
Line Feed, CarriageReturn은 TypeWriter. 바로 타자기에서 유래 된 단어이다.
한 줄을 다 채워서 다음 줄에 작성하려면 종이를 올려주는데 그것이 LineFeed, 올려주고 다시 오른쪽 끝으로 보내주는 것이 바로 Carriage Return이다.
그래서 CRLF를 해 주어야 한줄 내림으로 인식한다.
갑자기 왜 얘길 하나면, 파일 입출력을 하다보면 '개행문자' 를 처리할 일들이 생기기 때문이다.
아래는 words.txt 라는 텍스트 파일에서 단어를 불러오는 것인데
apple
love
book
이런식으로 구성되어있다.
try {
FileReader fin = new FileReader("words.txt");
int c;
StringBuffer sb = new StringBuffer();
while((c = fin.read()) != -1) {
if (c == '\n') {
v.add(sb.toString().trim());
}
else {
sb.append((char)c);
}
}
if (sb.length() != 0)
v.add(sb.toString());
} catch (IOException e) {
e.printStackTrace();
return;
}
여기서
if (c == '\n') {
v.add(sb.toString().trim());
}
if문 안의 조건과 trim()을 살펴보아야 한다.
c == '\n' 은 LF의 처리를, trim은 CR을 처리한다.
'\n' 을 만나면 하나의 단어로 완성되게 코드를 짰는데,
이러면 '\r'가 문자열에 남게된다.
따라서 tirm()함수로 문자열 양 옆에 붙은 WhiteSpace를 제거해준다.
이렇게 하면 txt파일에서 온전히 단어만 추출할 수 있다.
JAVA 뿐만 아니라 모든 경우 다 적용되므로 꼼꼼히 살펴 보도록 하자
'Programming Language > JAVA' 카테고리의 다른 글
명품자바 programming 13장 실습문제 (0) | 2020.12.08 |
---|---|
명품자바 programming 11장 실습문제 (0) | 2020.12.04 |
명품자바 programming 실습문제 10장 (0) | 2020.12.04 |
명품자바 programming 실습문제 9장 (0) | 2020.12.04 |