고급 문자열 서식 지정
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 49번째.
Java의 String formatting을 사용하면 format specifier를 사용하여 형식이 지정된 문자열을 만들 수 있습니다. 가장 일반적인 것은 문자열에 사용하는 %s, 정수에 사용하는 %d, 소수에 사용하는 %.2f입니다.
여러 값을 사용하여 문자열을 형식 지정합니다:
String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);위 코드를 실행하면 text에는 다음이 포함됩니다:
Name: John, Age: 25
소수 자릿수를 정밀하게 서식 지정합니다:
double price = 19.99;
String formatted = String.format("Price: $%.2f", price);위 코드를 실행한 후 formatted에는 다음이 포함됩니다:
Price: $19.99
챌린지
쉬움formatData라는 이름의 메서드를 만들고 다음 네 가지 인수를 받도록 하세요:
- 제품 이름을 나타내는 String(
name) - 제품 가격을 나타내는 double(
price) - 수량을 나타내는 정수(
quantity) - 출력 형식 유형을 나타내는 String(
format)
메서드는 다음 형식 유형에 따라 데이터를 형식화해야 합니다:
- "basic": "ITEM: {name}, PRICE: ${price}" 반환
- "detailed": "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}" 반환
- "total": "TOTAL FOR {quantity}x {name}: ${total}" 반환 (total = price * quantity) 모든 가격은 소수점 이하 정확히 2자리로 형식화해야 합니다.
반환 메시지:
- 입력 중 하나라도 null이거나 형식이 유효하지 않은 경우: "Invalid input" 반환
직접 해보기
import java.util.Scanner;
public class Main {
public static String formatData(String name, double price, int quantity, String format) {
// 여기에 코드를 작성하세요
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
double price = Double.parseDouble(scanner.nextLine());
int quantity = Integer.parseInt(scanner.nextLine());
String format = scanner.nextLine();
if (name.equals("null")) name = null;
if (format.equals("null")) format = null;
System.out.println(formatData(name, price, quantity, format));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Java 컴파일러