JAVA) StringBuilder 사용시 주의할 점

JangDongyul·2023년 5월 15일
0

JAVA

목록 보기
3/5

Java에서 StringBulder 에서 개행을 넣을 때 주의할 점이다.

6행을 보면 개행을 작은 따옴표로 '\n'으로 묶었다.
그러자, 이것을 개행해주지 않고, 아스키코드표에서 개행의 10진수에 해당하는 10으로 인식하였다.
즉, 문자열로서의 LF(개행)가 아니라 아스키코드 10진수로서 LF를 인식한다는 것이다.

그래서 i+10으로 출력이 된 결과가 나온다.
(StringBuilder 클래스가 i+10을 해준 다음에 String으로 만들어버린다.)

따라서 이렇게 큰 따옴표로 묶어주자 "\n"

개행이 아주 잘 되었다.
원래 StringBuilder는 문자열을 다루는 클래스이므로 특수한 경우가 아니면 큰따옴표를 사용하는 것을 권장한다.

만약 큰따옴표를 안쓰고 작은 따옴표만 쓰면서 문자열 개행으로 인식시켜주고 싶다면?

StringBuilder에서 이렇게 '\n',
즉 LF를 작은 따옴표로 묶고도 문자열 개행으로 인식시켜주려면
append()를 한번 더 써야 한다.

append() 한번 더 써줄 때는 개행에 큰따옴표, 작은따옴표 다 사용해도 된다.

왜냐하면 append() 에서 괄호 안 파라미터들의 연산이 끝나면
그 다음에는 String으로 만들어주기 때문이다.
즉 'n'도 "n"으로 만들어준다는 말이다.
그렇기 때문에 가능하다.

그리고 sb.append(i+"\n")와

sb.append(i)
sb.append("\n")
의 속도를 비교해보면
후자가 메모리를 더 적게 차지하고 속도도 더 빠르다.

백준 채점 기계로 실험 및 비교해본 결과다.

0개의 댓글