Study/java

[Java] String - format 문자열 형식 사용법

 

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));

format 사용결과
format 사용결과

%가 있는 위치에 문자열이 들어갑니다.

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));

%d 사용결과
%d 사용결과

첫번째 코드는 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