inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

14 출력이 강의와 다릅니다.

189

어린 염소

작성한 질문수 2

0

%-6d%n은 안나오고 %-6.2s%n은 JaJa로만 나옵니다.

제가 틀리게 입력한건가요?

java 객체지향

답변 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 을 누락하신 것 같아요 😋

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

143

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

117

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

70

1

사고력 키우는 법이 어떤게 있나요?

0

93

2

getter setter

0

101

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

78

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

114

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

115

2

응용이 어렵습니다.

0

204

2

IntelliJ가 보이지 않습니다.

0

183

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

120

2

Iterator 문의

0

104

1

코드 순서 문의

0

141

1

클래스 메소드

0

149

2

Quiz_05 관련 질문드립니다 !

0

117

2

다운로드가 안됩니다

0

165

2

다형성

0

119

2

HashMap

0

80

2