IT

printf에서 Java의 "% n"은 어떻게?

lottoking 2020. 8. 26. 08:11
반응형

printf에서 Java의 "% n"은 어떻게?


나는 유효한 Java를 %n읽고 모든 곳에서 개행 문자를 사용 합니다. \nJava 프로그램에서 개행 문자를 사용으로 사용 합니다.

어느 것이 '올바른'것입니까? 뭐가 문제 야 \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()또는 Formatterobject-를 사용할 때만 참 입니다. %nin 을 사용 하면 개행이 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

반응형