일단 시작해보는 블로그

[Java] 문자열 포맷 - String.format(), System.out.printf() 본문

개발/Java

[Java] 문자열 포맷 - String.format(), System.out.printf()

Selina Park 2019. 8. 20. 09:45

C언어에서 출력을 담당하는 printf() 함수와 같이 Java에서도 동일한 기능을 제공하는 메소드들이 존재한다.

 

JAVA 문자열 포맷

String 클래스의 format() : String.format()

PrintWriter 클래스와 PrintStream 클래스의 printf() 메소드 : System.out.printf()

 

String.format()은 결과값으로 포맷팅된 문자열을 반환하고 System.out.printf()는 포맷팅된 값을 출력해준다.

 

예시

 

포맷 명세자 (Format Specifier)

형식 : %[인자순서$][플래그][너비][정밀도]데이터타입

 

1. 데이터 타입

일반적으로는 이거만 외우면 된다.

정수 : %d

실수 : %f

문자열 : %s

불리언 : %b

 

2. 인자순서$

argument의 치환 순서를 지정하는 것.

1$는 첫번째, 2$는 두번째, 3$는 세번째, ... , n$는 n번째

System.out.println("%2$d + %1$d 은 %3$d 입니다." 10, 20, 30); // 20 + 10 = 30 입니다. 

 

3. 플래그

부가적인 정보를 표시하기 위해 사용된다.

데이터를 왼쪽으로 정렬한다던가, 구분문자를 표시하는 등의 옵션을 설정하고 싶을 때 이용할 수 있다.

System.out.printf("%d + %d 은 %+d 입니다.", 10, 20, 30); //20 + 10 = +30 입니다.

 

4. 너비와 정밀도

너비는 데이터를 표현할 때 얼마 정도의 공간을 차지할 것인지를 지정하는 것

정밀도는 소수점 아래의 값을 몇 자리까지 표현할 것인지를 나타낸다. (정밀도는 '.숫자'형태로 표시한다.)

 

예를 들어 %5d는 5개의 문자를 표시할 만큼의 공간이 확보하게 되고

%5.2f는 5개의 문자를 표시할 만큼의 공간을 확보하고 그 중 2자리는 소수점 이하의 값을 표현하는데 사용된다.

System.out.printf("파이=%5.2f", Math.PI); //파이=3.14

-> 5자리를 표시할 수 있는 공간을 확보했지만 argument의 정수 값이 3이므로 남은 2자리는 사용하지 않게된다.

 

 

 

 

 

 

[REFERENCE]

https://library1008.tistory.com/5

'개발 > Java' 카테고리의 다른 글

[Java] String 다루기 - matches, regex  (0) 2019.08.22
[Java] HashMap  (0) 2019.08.21
[Java] 정적 변수와 메소드 (static)  (0) 2019.08.08
[Java] call by value  (0) 2019.08.08
[Java] 메소드  (0) 2019.08.08
Comments