형식 지정자(Format Specifier)
printf() 또는 String.format()을 사용할 때, 출력할 값의 형태를 지정하는 기호.
형식 지정자의 기본 구조
%[플래그][너비][.정밀도]변환문자
• % → 형식 지정자가 시작됨을 의미
• [플래그] → 정렬, 부호, 공백 등 옵션 (생략 가능)
• [너비] → 최소 출력 너비 (생략 가능)
• [.정밀도] → 소수점 자릿수 (생략 가능)
• 변환문자 → 어떤 타입을 출력할지 결정 (필수)
기본적인 변환 문자
%d : 정수 (10진수), System.out.printf("%d", 10); → 10
%f : 실수 (기본 소수점 6자리), System.out.printf("%f", 3.14159); → 3.141590
%s : 문자열, System.out.printf("%s", "Hello"); → Hello
%c : 문자, System.out.printf("%c", 'A'); → A
%b : 불리언, System.out.printf("%b", true); → true
%x : 16진수, System.out.printf("%x", 255); → ff
%o : 8진수, System.out.printf("%o", 10); → 12
%% : % 기호 출력, System.out.printf("100%% 완료!"); → 100% 완료!
너비 지정 예제
System.out.printf("|%10d|\n", 123); // | 123|
System.out.printf("|%-10d|\n", 123); // |123 |
0 채우기 (%0nd)
System.out.printf("%05d\n", 42); // 00042
System.out.printf("%07.2f\n", 3.1); // 0003.10
양수, 음수 부호 표시 (%+d)
System.out.printf("%+d\n", 7); // +7
System.out.printf("%+d\n", -7); // -7
문자열 정렬 (%-ns)
System.out.printf("|%-10s|\n", "Java"); // |Java |
System.out.printf("|%10s|\n", "Java"); // | Java|
Stream sorted
기본 오름차순 정렬 방법
List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 3);
List<Integer> sortedNumbers = numbers.stream()
.sorted() // 기본 오름차순 정렬
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 출력: [1, 2, 3, 5, 8]
내림차순 정렬 방법(Comparator 사용)
List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 3);
List<Integer> sortedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder()) // 내림차순 정렬
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 출력: [8, 5, 3, 2, 1]
Comparator<T> : 객체를 비교할 때 사용하는 인터페이스.
compare(T o1, T o2) 라는 메서드를 통해 정렬 기준을 직접 정의할 수 있음. ((a, b) -> b-a : 내림차순, (a, b) -> a-b : 오름차순)
숫자 또는 문자열, 객체등 다양한 타입을 비교할 때 사용
reverseOrder() : 인터페이스에서 제공하는 정적(static) 메서드, 스트림뿐만 아니라 Collections.sort()에서도 사용 가능.
'코딩 > sparta TIL' 카테고리의 다른 글
TIL 17 : 인터넷 용어 기초 (0) | 2025.03.17 |
---|---|
TIL 16 : ENUM, 메모리구조와 변수 복습 (0) | 2025.03.14 |
CH 2 : 키오스크 과제 (0) | 2025.03.10 |
TIL 14 : StringBuilder (0) | 2025.03.10 |
TIL 12 : Stream, Lambda (0) | 2025.03.05 |