format은 문자열을 원하는 포맷에 맞게 변환해주는 메소드입니다.
format(Locale l, String format, Object... args)
정해진 format에 맞게 문자열을 만들어주는 메소드입니다.
format에는 여러개의 형식을 사용할 수 있고, 형식의 개수만큼 args를 넣어서 사용하면 됩니다.
Locale 변수 없이도 사용가능합니다.
String s1 = "A";
String s2 = "a";
System.out.println(String.format("String : %S, %s", s1, s2));
System.out.println(String.format("String : %S, %s", s2, s1));
%가 있는 위치에 문자열이 들어갑니다.
c언어에서 문자열의 형식을 지정하는 방식과 유사합니다.
%S는 대문자를 의미하고, %s는 소문자를 의미합니다.
그래서 두번째 예시코드에서 s2은 소문자 a지만 %S에 의해 대문자로 출력됨을 알 수 있습니다.
대소문자 외에도 다양한 format들이 존재합니다.
%d | 10진수 정수 |
%o | 8진수 정수 |
%x | 16진수 정수 |
%f | 10진수 실수 |
%c | 문자(char) |
%t(%tY, %tm, %td) | 시간(4자리 년수, 월, 일) |
%b | boolean |
예제
System.out.println(String.format("%,d won", 100000));
System.out.println(String.format("%010d", 123));
첫번째 코드는 10만의 숫자에 쉼표표시를 하고 끝에 won 문자열을 붙여주는 format입니다.
두번째 코드는 10자리의 공간에 123을 넣고 나머지 공간에는 0을 채워주는 format입니다.
System.out.println("String.format(\"%3d\", 10) = " + '"' + String.format("%3d", 10) + '"');
System.out.println("String.format(\"%-3d\", 10) = " + '"' + String.format("%-3d", 10) + '"');
System.out.println("String.format(\"%3d\", 10000) = " + '"' + String.format("%3d", 10000) + '"');
% 다음에 숫자가 오면 그 숫자만큼의 공백이 생깁니다.
%3d로 사용하면 앞에 3자리를 공백으로 확보하고 그 공간에 숫자를 채워줍니다.
자리수가 음수인 경우에는 뒷부분이 공백으로 채워집니다.
만약 주어진 숫자가 지정된 자리수를 넘으면 자리수에 상관없이 그대로 변환됩니다.
이외에도 format을 잘 활용한다면 문자열을 다룰 때 유용합니다.
읽으면 좋은 글
[Java] 문자열에 공백이나 0을 자리수만큼 채우는 방법
[Java] 문자열에 공백이나 0을 자리수만큼 채우는 방법
문자열을 다룰 때 일정 자리수를 확보해야 하거나 특정 문자를 자리수만큼 채워야할 때가 있습니다.이럴 때 사용하기 좋은 메소드를 소개해드리겠습니다. 왼쪽에 채우기String.format 메소드 사용
priming.tistory.com