답변 1
0
안녕하세요?
바로 윗줄에서 %n 을 누락하여 발생한 현상입니다.
System.out.printf("%6.2s", "Java"); // 수정 전
System.out.printf("%6.2s%n", "Java"); // 수정 후
윗줄에서 %n 이 없으니 줄바꿈이 되지 않았으며, 6자리 공간을 확보하고 우측 정렬하여 2글자인 Ja 를 먼저 출력하지요.
(1) _ _ _ _ J a
System.out.printf("%-6.2s%n", "Java");
그런 다음에 이어서 위 코드를 실행하게 되니,
6자리 공간을 확보하고 좌측 정렬하여 2글자인 Ja 를 출력하게 됩니다.
즉 (2) J a _ _ _ _ 가 되겠네요.
그런데 둘 사이에 줄바꿈이 없으므로
(1) _ _ _ _ J a (2) J a _ _ _ _
가 합쳐져서 실제로 보기에는
_ _ _ _ J a J a _ _ _ _
이렇게 보여지게 된 거에요.
보다 더 확실히 차이를 확인하고 싶다면 이렇게 해보시면 되겠네요.
System.out.printf("%6.2s", "ABCD"); // 처음 두 글자 AB
System.out.printf("%-6.2s%n", "EFGH"); // 처음 두 글자 EF
위 예제에서는 각각 출력 문장이
(1) _ _ _ _ A B
(2) E F _ _ _ _
이렇게 될텐데, %n 에 해당하는 줄바꿈이 없으니 둘이 합쳐져서
_ _ _ _ A B E F _ _ _ _
이렇게 출력이 되겠네요 😊
감사합니다.
덧) 첫 번째 스크린샷 이미지는 코드가 잘려서 정확한 확인은 어렵지만 아마도 동일하게 코드 윗줄에서 %n 을 누락하신 것 같아요 😋