printf에서 Java의 "% n"은 어떻게?
나는 유효한 Java를 %n
읽고 모든 곳에서 개행 문자를 사용 합니다. \n
Java 프로그램에서 개행 문자를 사용으로 사용 합니다.
어느 것이 '올바른'것입니까? 뭐가 문제 야 \n
? Java 가이 C 규칙을 변경 한 이유는 무엇입니까?
빠른 Google에서 :
인수에 해당하지 않는 지정자도 하나 있습니다. 줄 바꿈을 출력하는 것은 "% n"입니다. 경우에 따라 "\ n"은 항상 올바른 플랫폼 별 줄 구분 기호를 사용할 수있는 플랫폼간에 이식 할 수있는 "\ n"은 "\ n"은 사용할 수 있습니다.
https://docs.oracle.com/javase/tutorial/java/data/numberformat.html을 참조 하십시오.
%n
플랫폼간에 이식이 가능하지 \n
않습니다.
참조 문서에서 형식 지정 고급 구문을 참조하십시오 .
'n'줄 구분 기호 결과는 플랫폼 별 줄 구분 기호입니다.
반면 \n
유닉스 기반 시스템에 대한 올바른 개행 문자가 다른 시스템은 라인의 끝을 나타냅니다. 내기 위해 다른 문자를 사용할 수 있습니다. 특히 Windows 시스템 \r\n
은 사용 하고 초기 MacOS 시스템은 \r
.
사용하여 %n
귀하의 형식으로 언어에, 당신은에 의해 반환 된 값을 사용하는 자바에게 System.getProperty("line.separator")
현재 시스템에 대한 행 단락이다.
경고 : 네트워킹 코드를 수행하는 경우 실행중인 플랫폼에 따라 네트워크를 통해 다른 문자를 보낼 수있는 % n과 달리 \ n의 확실성을 선호 할 수 있습니다.
"정답"은 정확히 무엇을 하려는지에 따라 따라합니다.
\ n은 항상 "unix 스타일"줄 끝을 제공합니다. \ r \ n은 항상 "dos style"줄 끝을 제공합니다. % n은 실행중인 플랫폼의 줄 끝을 제공합니다.
C는 다르게 처리합니다. "텍스트"또는 "바이너리"모드로 파일을 열도록 선택할 수 있습니다. 바이너리 모드에서 파일을 열면 \ n "유닉스 스타일"라인 엔딩을 제공하고 "\ r \ n"은 "dos 스타일"라인 엔딩을 제공합니다. dos / windows 시스템에서 "텍스트"모드로 파일을 열면 \ n 작성하면 파일 처리 코드가 파일을 \ r \ n으로 변환합니다. 따라서 텍스트 모드에서 파일을 \ n 사용하면 플랫폼 별 줄 끝이 표시됩니다.
Java 디자이너가 "텍스트"및 "바이너리"파일 모드에 대한 C의 엉뚱한 아이디어를 복제하고 싶지 않은 이유를 알 수 있습니다.
자바에서는 \n
항상 \u000A
줄 바꿈 문자를 생성 합니다. 특정 플랫폼에 대한 올바른 줄 구분 기호를 얻으려면 %n
.
따라서 예를 들어 네트워킹에서 줄 바꿈 문자 \n
가 필요하다고 확신 할 때 사용 하십시오 \u000A
.
다른 모든 상황에서는%n
답변은이 System.out.printf()
또는 System.out.format()
또는 Formatter
object-를 사용할 때만 참 입니다. %n
in 을 사용 하면 개행이 System.out.println()
아닌 것을 생성합니다 %n
.
% n 형식 지정자는 운영 체계간에 있습니다. 그러나 System.out.print 또는 System.out.println 함수에 대한 인수로 사용할 수 없습니다.
항상 \ n 위에있는이 새 버전의 줄 구분 기호를 사용하는 것이 좋습니다.
참고 URL : https://stackoverflow.com/questions/1883345/whats-up-with-javas-n-in-printf
'IT' 카테고리의 다른 글
메모장 ++ 다중 편집 (0) | 2020.08.27 |
---|---|
git bash 명령 줄 완성을 구성하는 방법은 무엇입니까? (0) | 2020.08.27 |
자바 펼쳐 날짜에 대한 DateTime (0) | 2020.08.26 |
내 PowerShell 펼쳐가 실행되지 않는 이유는 무엇입니까? (0) | 2020.08.26 |
JavaScript에서 DIV 너비 및 높이 설정 (0) | 2020.08.26 |