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")
의 속도를 비교해보면
후자가 메모리를 더 적게 차지하고 속도도 더 빠르다.
백준 채점 기계로 실험 및 비교해본 결과다.