[JAVA] JAVA 문자열 포맷팅
이번 시간에는 JAVA 의 문자열 포맷팅에 대해서 알아보도록 하겠습니다.
JAVA 에서는 문자열 객체인 String 에서 +
등의 연산을 지원해 주고 있습니다. 그래서 문자열 출력시 서로 다른 문자열을 덧셈 연산으로 출력하도록 합니다.
하지만 간단하게 몇 몇 예제만 돌려보는 프로그램이라면 괜찮지만 다른 회사 혹은 고객이 사용하게 되는 프로그램에서는 프로그램이 설치된 곳에 로그가 출력되도록 할텐데 로그에 여러 메시지들을 출력하도록 할 때 이런 덧셈 연산을 이용해서 출력하도록 하면 이 또한 연산이기 때문에 쓸모 없는 연산이 많아져서 프로그램이 굉장히 느려지게 되고 서버의 자원도 심하게 먹는 현상이 발생하게 됩니다.
이러한 것을 막기 위해 JAVA 에서 제공해 주는 포맷팅 방식을 알아보고자 이번 포스팅을 작성하게 되었습니다. 그럼 시작하도록 하겠습니다.
문자열 포맷팅
문자열 포맷팅이란 문자열 안의 특정한 값을 바꿀 수 있게 해주는 것이며, 쉽게 말해 문자열 안에 어떤 값을 삽입하는 방법이라고 볼 수 있습니다.
문자열 포맷팅을 할 때에는 String.format
메소드를 사용합니다.
String.format
에는 출력하고자 하는 변수가 있다면 그 변수의 타입에 해당하는 서식을 작성하는 것으로 변수를 출력할 수 있습니다.
사용 방법은 예시를 보시는 것이 이해가 빠를 것 같아 예시로 설명을 하도록 하겠습니다.
예시는 다음과 같습니다.
String str = "StringFormatExample";
System.out.println(String.format("문자열 서식 : %s", str)); // 문자열 서식 : StringFormatExample 출력
위 예제에서 본 것과 같이 사용하면 되고, %s
와 같은 서식은 하나 이상 올 수 있고 여러 타입들이 올 수 있습니다.
포맷 지정 서식
String.format 에 사용되는 서식 중에서 사용되는 타입들을 표로 정리해 보았습니다.
서식 | 분류 | 설명 |
---|---|---|
%b, %B | 참, 거짓 | boolean 값 지정 |
%h, %H | 16진수 | 16진수 지정 |
%s, %S | 문자열 | 문자열 지정 |
%c, %C | 문자 | 문자 지정 |
%d | 숫자 | 10진수로 표시 |
%o | 숫자 | 8진수로 표시 |
%x, %X | 정수 | 16진수로 표시 |
%e, %E | 부동 소수점 | 10진수(가수와 진수)로 표시 |
%f | 부동 소수점 | 10진수로 표시 |
%g, %G | 부동 소수점 | 10진수(반올림)로 표시 |
%a, %A | 부동 소수점 | 16진수(가수와 진수)로 표시 |
%t, %T | 날짜, 시간 | 날짜 및 시간 서식 문자 앞에 지정 ex %tH, %tM, %tS …. |
%% | 퍼센트 | 퍼센트 표시 |
%n | 줄 구분 | 개행(줄바꿈)문자 표시 |
자주 사용하는 타입별 예시
String str = "StringFormatExample";
boolean bool = true;
int n = 1234;
String result = String.format("문자열 서식 : %s, %S", str, str);
System.out.println(result);
result = String.format("boolean 서식 문자열 : %b, %B", bool, bool);
System.out.println(result);
result = String.format("정수 서식 : %d, %o, %x, %05d", n, n ,n ,n);
System.out.println(result);
result = String.format("부동 소수점 서식 : %4$e, %3$f, %2$g, %1$a", 1234.01, 1234.02, 1234.03, 1234.04);
System.out.println(result);
출력
문자열 서식 : StringFormatExample, STRINGFORMATEXAMPLE
boolean 서식 문자열 : true, TRUE
정수 서식 : 1234, 2322, 4d2, 01234
부동 소수점 서식 : 1.234040e+03, 1234.030000, 1234.02, 0x1.3480a3d70a3d7p10
마치며
이번엔 JAVA 에서 자주 사용되는 문자열 포맷팅에 대해서 알아보았습니다.
문자열 포맷팅은 JAVA 프로그램 로그를 출력 할 때에도 자주 사용되기 때문에 알아두는게 좋다고 생각됩니다.
로그 출력 시에 +
를 통해 문자열을 나열하도록 하면 +
도 연산이기 때문에 프로그램 속도가 느려지는 문제가 발생하게 되어, 이 문제를 해결하기 위해서는 문자열 포맷팅은 필수이기 때문입니다.
이번에도 포스트를 읽어주셔서 감사드리며, 오타 및 잘못된 내용이 있을 경우 댓글 남겨주시면 감사하겠습니다
참조
https://wikidocs.net/205#_4
https://velog.io/@yu-jin-song/JAVA-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%98%95%EC%8B%9D-%EC%A7%80%EC%A0%95
Comments