728x90
반응형
System.out.printf("%d%n", 123);
System.out.printf("%d\n", 123);
%n과 \n 모두 줄 바꿈을 표현하는데 사용됩니다. VSC에서 실행하는 경우 결과값에 이 차이점이 없어 보입니다.
하지만 이 둘은 플랫폼에 따라 차이점이 있을 수 있습니다.
%n은 플랫폼에 따라서 줄바꿈을 처리하는 방식에 따라 다른 줄바꿈 문자를 출력합니다. 예를 들어, Windows 운영체제에서는 %n이 "\r\n"으로 처리되어 출력됩니다. 따라서, %n을 사용하면 어떤 운영체제에서든 일관성 있는 줄바꿈을 표현할 수 있습니다.
*\r은 캐리지 리턴(Carriage Return)을 나타내는 이스케이프 시퀸스. 이전에 출력한 문자열의 맨 앞으로 커서를 이동시킨다.
예를 들어,
System.out.print("Hello, World!\r");
System.out.print("Goodbye!");
위 코드의 결과 값은 GoodBye! World!인데 \r으로 인해 Hello, World!가 출력된 후에 커서가 맨 앞으로 가서 덮어쓰게 되었기에 발생한 결과다.
반면에, \n은 항상 줄바꿈 문자를 나타냅니다. 즉, 어떤 플랫폼에서든 항상 "\n"이 출력됩니다. 그러나 이것은 운영체제에 따라 줄바꿈 문자가 다를 수 있는 경우에는 일관성 있는 출력을 보장하지 않습니다.
따라서, 일반적으로는 %n을 사용하여 줄바꿈을 표현하는 것이 더 좋습니다. 그러나, 특정한 경우에는 \n을 사용하는 것이 적절할 수도 있습니다. 예를 들어, 웹사이트와 같이 특정한 플랫폼에서 실행되는 것이 아니라, 여러 플랫폼에서 접근이 가능한 경우에는 \n을 사용하는 것이 좋을 수 있습니다.
728x90
반응형
'Programming Language > Java' 카테고리의 다른 글
[Java] java.net.BindException: Address already in use (1) | 2024.06.17 |
---|---|
[Java][Maven][VSCode] syntax error near unexpected token `('. @REM Licensed to the Apache Software Foundation (ASF) (0) | 2023.12.31 |
[Java] VScode javax.swing 실행이 안될 때 (0) | 2023.12.31 |
[Java] Mac VsCode zsh: command not found: 에러 (1) | 2023.12.31 |
[Java] Syntax error on token "class", @ expected" (0) | 2023.12.31 |