변수의 값을 집어넣어야 하는 문자열을 출력할 때, +(더하기) 연산자를 사용해 붙여서 출력하곤 합니다.
String sung = "Jeon";
String name = "Inhyeok";
System.out.println("제 성은 " + sung + "이고, 이름은 " + name + "입니다.");
하지만, 이는 코드 가독성이 좋지 않고 깔끔하지도 않은 것 같습니다....
String.format() 메서드와 System.out.printf()를 활용한다면,
문자열(String)에 대한 Formatting을 통해 더 가독성이 좋은 코드를 만들 수 있습니다.
String.format() : String
String.format(String format, Object... args)는 첫 번째 매개변수로 String 형태의 문자열(format)
그리고 두 번째 매개변수로는 format 문자열에 사용될 독립변수들(args)을 받습니다.
String.format() 메서드는, 최종적으로 String 문자열 객체를 반환합니다.
format 문자열에는 %() 형태를 가진 형식(format) 지정자가 사용됩니다.
두 번째 매개변수인 독립 변수의 타입에 따라 각각 다른 포맷지정자가 사용됩니다.
(수 많은 형식지정자가 있지만, 아래에서는 자주 사용되는 형식지정자 몇 가지만 소개합니다....ㅎ)
- %d : 정수에 대한 형식 지정
- %s : 문자열에 대한 형식 지정
- %f : 실수에 대한 형식 지정
- %c : 단일 문자(char)에 대한 형식 지정
- %b : 논리(boolean)에 대한 형식 지정
- %n : 줄바꿈
// 사용 예시
String result = String.format("정수 = %d, 문자열 = %s, 실수 = %f, 줄 바꿈 한번 하고%n단일문자 = %c, 논리 = %b", 26, "전인혁", 0.12, 'ㅋ', true);
System.out.println(result);
형식 지정자 응용하기
형식 지정자 % 뒤에 숫자 또는 소수점을 입력하면, 숫자 또는 소수점에 따라 공백이나 소수점 자리 수를 조절할 수 있습니다.
String result = String.format("문자열 %20s", "전인혁"); // %20s의 문자열은 20만큼의 공간을 차지하고, 우측 정렬
String result2 = String.format("%-20s!!", "김인혁"); // %-20s의 문자열은 20만큼의 공간을 차지하고, 좌측 정렬
String result3 = String.format("소수 %.2f", 0.555555555); // %. 다음의 숫자 자리수 까지 표시 (%.2f = 소수 셋째자리에서 반올림)
System.out.println(result);
System.out.println(result2);
System.out.println(result3);
System.out.printf() : 출력
formatting을 한다는 것은 동일하나, formatting 된 문자열을 콘솔에 출력합니다.
println()과 다르게 줄바꿈이 일어나지 않기 때문에, 줄바꿈을 원할 시 형식 지정자 %n이나 \n을 끝에 넣어주어야 합니다.
System.out.printf("%s", "최인혁");
System.out.printf("%s", "김인혁\n"); // 개행(줄바꿈)
System.out.printf("%s", "이인혁");
'Java' 카테고리의 다른 글
[Java] 문자열 클래스 - String과 StringBuilder (0) | 2023.01.11 |
---|---|
[Java] System.gc();와 Garbage Collection (0) | 2023.01.09 |
[Java] print 메소드와 BufferedWriter로 콘솔에 출력하기 (0) | 2023.01.09 |
[Java] Scanner와 BufferedReader로 콘솔에서 입력 받기 (0) | 2023.01.07 |