표 정렬하기
데이터 열의 형식을 지정합니다
표 정렬하기은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
정렬이 필요한 이유
데이터 행을 출력할 때 열이 들쭉날쭉하면 읽기 어렵습니다. 정렬된 열은 숫자와 레이블을 서로 아래에 가지런히 맞춰 줍니다.
printf의 너비와 플래그를 사용하면 콘솔에서 바로 깔끔한 표를 만들 수 있습니다.
기본적으로 오른쪽 정렬
%10s와 같은 너비는 10자리를 확보하고 왼쪽을 채우므로 텍스트가 오른쪽 정렬됩니다.
숫자도 같은 방식으로 처리되므로 숫자 열은 오른쪽 가장자리에 맞춰집니다.
public class Main {
public static void main(String[] args) {
System.out.printf("[%10s]\n", "hi");
}
}빼기 기호로 왼쪽 정렬
- 플래그를 추가하면 영역 안에서 왼쪽 정렬할 수 있습니다. %-10s는 텍스트를 왼쪽에 배치하고 오른쪽을 채웁니다.
왼쪽 정렬은 레이블과 이름에 적합합니다.
public class Main {
public static void main(String[] args) {
System.out.printf("[%-10s]\n", "hi");
}
}두 개의 열
왼쪽 정렬된 레이블과 오른쪽 정렬된 숫자를 결합하면 한 행을 만들 수 있습니다. %-10s%5d는 너비 10인 이름과 너비 5인 숫자를 만듭니다.
모든 행에 같은 format을 반복해서 사용하면 열이 정렬됩니다.
public class Main {
public static void main(String[] args) {
System.out.printf("%-10s%5d\n", "Apples", 3);
System.out.printf("%-10s%5d\n", "Pears", 12);
}
}간단한 표
머리글과 각 데이터 행에 같은 format 문자열을 사용하면 모든 항목이 정렬된 상태로 유지됩니다.
여기서는 세 행이 하나의 패턴을 공유하므로 열이 깔끔하게 유지됩니다.
public class Main {
public static void main(String[] args) {
String fmt = "%-8s%6d\n";
System.out.printf(fmt, "Name", 0);
System.out.printf(fmt, "Ann", 90);
System.out.printf(fmt, "Bob", 7);
}
}소수 정렬하기
금액이나 측정값에는 너비와 정밀도를 결합하여 사용합니다. %8.2f는 숫자를 소수 둘째 자리까지 표시하고 너비 8 안에서 오른쪽 정렬합니다.
그러면 여러 행의 소수점이 세로로 맞춰집니다.
public class Main {
public static void main(String[] args) {
System.out.printf("%8.2f\n", 5.5);
System.out.printf("%8.2f\n", 123.4);
}
}헤더와 숫자
한 행에 문자열 열과 숫자 열을 섞어 배치해 보겠습니다. 왼쪽 레이블과 오른쪽 정렬된 가격이 함께 있으면 자연스럽게 읽힙니다.
이 패턴은 대부분의 콘솔 보고서의 핵심입니다.
public class Main {
public static void main(String[] args) {
System.out.printf("%-10s%8.2f\n", "Coffee", 3.5);
System.out.printf("%-10s%8.2f\n", "Cake", 12.0);
}
}열 너비 선택
가장 긴 값 이상으로 너비를 정하십시오. 그렇지 않으면 텍스트가 열을 넘쳐 정렬이 깨집니다.
값이 필드보다 넓으면 printf는 값을 전체 출력하고 너비는 무시합니다.
public class Main {
public static void main(String[] args) {
System.out.printf("[%3s]\n", "toolong");
}
}행 반복하기
반복문과 공유된 하나의 format 문자열을 사용하면 전체 표를 쉽게 만들 수 있습니다.
반복할 때마다 정렬된 행 하나를 출력하므로 데이터를 추가해도 레이아웃이 깨지지 않습니다.
public class Main {
public static void main(String[] args) {
String[] names = {"Sun", "Mon", "Tue"};
int[] hrs = {8, 12, 5};
for (int i = 0; i < names.length; i++) {
System.out.printf("%-6s%4d\n", names[i], hrs[i]);
}
}
}String.format과 결합하기
출력하기 전에 텍스트가 필요하다면 String.format으로 정렬된 각 행을 만들 수 있습니다.
너비와 정렬 규칙은 동일합니다.
public class Main {
public static void main(String[] args) {
String row = String.format("%-8s%5d", "Total", 99);
System.out.println(row);
}
}탭과 너비 비교
\t 탭으로 열을 구분할 수도 있지만, 탭 위치는 환경마다 다르고 긴 값이 있으면 정렬이 어긋납니다.
%-10s와 같은 고정 너비는 안정적이고 예측 가능한 열을 제공하므로 표에는 이를 사용하는 것이 좋습니다.
빠른 확인
이름을 12칸 안에서 왼쪽 정렬하는 format은 무엇입니까?
복습
너비 필드와 왼쪽 정렬을 위한 - 플래그, 깔끔한 소수 열을 위한 %8.2f를 사용해 정렬된 표를 만들었습니다.
printf, String.format, 정렬을 함께 사용하면 어떤 콘솔 출력도 깔끔하게 형식화할 수 있습니다.
자주 묻는 질문
“표 정렬하기” 강의는 무료인가요?
네 — “표 정렬하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“표 정렬하기”에서 뭘 배우나요?
데이터 열의 형식을 지정합니다 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Java Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“표 정렬하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.