inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

특수 문자 (Escape Sequence)

Escape Sequence에서 Tap 결과값에 대해 질문드려요

509

lunaris0206

작성한 질문수 1

1

강의 영상에서는 \t 한번으로 숫자가 정렬된 것을 볼 수 있었습니다.

 

하지만 제가 작성하였을때는 정렬이 되지 않습니다.

물론 \t을 2번 진행하게 되면 정상적으로 정렬이 되는 것을 볼 수 있습니다.

강사님 처럼 \t 한번으로 정렬하기 위해서는 어떻게 해야하나요?

객체지향 java oop

답변 1

1

나도코딩

※ 본 질문은 아래 링크의 질문과 유사하여 동일한 답변에서 일부 내용을 수정 / 추가하여 제공합니다.
https://www.inflearn.com/questions/785133

안녕하세요?
탭(tab)은 PC마다, 프로그램마다, 터미널마다 설정된 칸의 수가 다를 수 있고 한글 / 영문에 따라서도 각 글자들이 차지하는 크기에 따라 조금씩 다르게 출력될 수 있습니다.
학습하시는 환경이 Mac 이신가요?
지금 답변을 작성하고 있는 윈도우 PC 환경 기준으로 설명을 드리면, 키보드에서 탭을 입력했을 때 현재 커서 위치로부터 4칸을 띄우는 것은 아니고 앞의 문자들을 포함하여 4칸의 공간 내에서 띄어쓰기 처리가 됩니다.
탭 동작에 대한 이해를 돕기 위해 아래와 같이 코드를 작성해봤어요.

System.out.println("\t9");
System.out.println("1\t9");
System.out.println("12\t9");
System.out.println("123\t9");
System.out.println("1234\t9");
System.out.println("12345\t9");
System.out.println("123456\t9");
System.out.println("1234567\t9");
System.out.println("12345678\t9");

이를 실행해보면 결과는 이렇습니다.
(※ PC 에서 입력하는 탭은 8칸인데 IntelliJ 에서는 기본 4칸으로 처리되고 있어서 텍스트가 아닌 이미지로 가져왔습니다)
image
(1번째 문장) : ....9
4칸을 띄운 뒤에 9를 적습니다.

(2번째 문장) : 1...9
4칸 중에서 1이 차지하고 있는 1칸을 제외한 나머지 3칸을 띄운 뒤에 9를 적습니다.

(3번째 문장) : 12..9
4칸 중에서 12가 차지하고 있는 2칸을 제외한 나머지 2칸을 띄운 뒤에 9를 적습니다.

(4번째 문장) : 123.9
4칸 중에서 123이 차지하고 있는 3칸을 제외한 나머지 1칸을 띄운 뒤에 9를 적습니다.

(5번째 문장) : 1234....9
앞의 4칸은 이미 1234 가 차지하고 있으므로, 그 이후부터 시작되는 새로운 4칸을 띄운 뒤에 9를 적습니다.

(6번째 문장) : 12345...9
앞의 4칸은 이미 1234 가 차지하고 있으므로, 그 이후부터 시작되는 새로운 4칸 중에서 1이 차지하고 있는 1칸을 제외한 나머지 3칸을 띄운 뒤에 9를 적습니다.

...

이후 과정도 동일한 형태로 진행됩니다.

만약 Mac 에서 학습하고 계시다면 한글을 표현하는 데 일부 차이가 있을 수 있습니다.
제가 확인을 위해 아래와 같이 숫자만, 또는 한글과 숫자가 섞인 코드를 적었습니다.

image
실행 결과는 이렇습니다.

image
탭이 4칸 간격으로 띄우므로 3번째 줄에서는 8칸인 "12345678" 을 입력한 뒤에 4칸을 띄우고 1234 가 잘 적히는 것을 확인할 수 있는데요. 한글의 경우 "해물파전" 만으로는 8칸인 "12345678" 만큼의 공간을 차지하지 않아서 4번째 줄에서는 "해물파전" 뒤에 커서가 한 칸 들어갈 공간이 생기게 됩니다. 이때 탭을 넣게 되면 커서 한 칸 만큼의 공간만 띄워지고 이어서 1234 가 출력되는 거죠. 만약 "해물파전" 대신 영문으로 된 "abcdefgh" 로 적으면 "12345678"과 동일한 간격으로 출력되는 것을 확인할 수 있습니다.

image

image
즉, 한글 처리 과정에서 실행 결과가 조금 달라질 수 있는 것이며 이는 크게 신경쓰지 않으셔도 괜찮은 부분입니다. 참고로 윈도우의 명령 창(cmd) 에서 실행시키는 경우 같은 코드임에도 불구하고 또다른 출력 결과가 나온답니다. 이번에는 한글 하나는 숫자 두개가 차지하는 공간과 완전 일치하며 탭 뒤의 1234 는 동일한 위치에 나오는 걸 알 수 있지요 😊

image
감사합니다.

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

1

146

2

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

0

119

2

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

0

72

1

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

0

94

2

getter setter

0

103

2

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

0

80

1

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

0

76

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

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

0

152

2

영상이 재생이 안됩니다.

0

167

3

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

0

117

2

응용이 어렵습니다.

0

206

2

IntelliJ가 보이지 않습니다.

0

187

3

JDK 버전 문의

0

130

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

123

2

Iterator 문의

0

105

1

코드 순서 문의

0

143

1

클래스 메소드

0

150

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

81

2