2012-01-23 2 views
0

지금자바 - 내가 같은 코드가 뉴 라인 문자 문제

String str = " " ; 

while( cond) { 

    str = str + "\n" ; 

} 

, 나는 인쇄시, 출력 문자열은 줄 바꿈 문자를 인쇄하지 않는 이유를 알고하지 않습니다. 그러나 (str = str + "c")와 같은 다른 문자를 추가하면 올바르게 인쇄됩니다. 아무도 나를 도울 수있는, 어떻게이 문제를 해결하고 왜 이런 일이?

+2

'str '을 출력하는 데 사용하고 계신 것이 있습니까? – Cuga

+0

"인쇄 안함"이란 무엇을 의미합니까? –

+0

out.println – Arpssss

답변

2

위의 코드를 Windows에서 실행하려는 것 같습니다. 글쎄 Windows ('\ r \ n')와 유닉스 ('\ n')에서 줄 구분 기호 나 줄 바꾸기가 다릅니다.

따라서 하드 코딩 대신 '\ n'을 새 줄로 사용하십시오. 시스템에서 새 줄을 얻으십시오 :

String newLine = System.getProperty("line.separator"); 
String str = " " ; 

while( cond) { 

    str = str + newLine ; 

} 
4

개행 문자는 control character으로 간주되어 기본적으로 특수 문자를 화면에 인쇄하지 않습니다.

예를 들어,이 시도 : 샘플을 바탕으로

String str = "Hi"; 
while (cond) { 
    str += "\n"; // Syntactically equivalent to your code 
} 
str += "Bye"; 
System.out.println(str); 
0

, 그것은 새로운 라인 문자를 표시하지 않을 유일한 이유는 cond 결코 사실이다 따라서 while 루프는 실행되지 않습니다 ...

1

정말로 \ n을 인쇄하려면 다음과 같이하십시오. 이 일어나는 이유에 좋은 참고로

NEWLINE

,이 튜토리얼에서 언급 JAVA Tutorials

를 방문하십시오 :를 앞에 문자는 다음과 같이

String first = "C:/Mine/Java" + "\\n"; 
System.out.println(first); 

OUTPUT이다 백 슬래시는 이스케이프 시퀀스이며 컴파일러에게는 특별한 의미가 있습니다. print 문에서 이스케이프 문자열이 발견되면 컴파일러에서 그에 따라 해석합니다.

희망 사항.

감사합니다.

관련 문제