Java/Short 개발

[Java/Short] 문자열/숫자의 왼쪽, 오른쪽에 값 채우는 방법 : String.format()

adjh54 2023. 3. 1. 19:47
728x170

 

 

해당 글에서는 문자열과 숫자의 왼쪽, 오른쪽에 값을 채우는 방법에 이해를 돕기 위해 작성한 글입니다.




1) 문자열을 왼쪽/오른쪽에서 값 채우는 방법


💡 해당 부분에서는 문자열을 기준으로 왼쪽/오른쪽에 “특정 값”을 채우는 방법입니다.

1. 기본 format


명령어 설명
%[최소길이]s 최소길이만큼 “문자열”을 출력하며, “왼쪽”에서 부터 “공백”으로 채웁니다.
%-[최소길이]s 최소길이만큼 “문자열”을 출력하며, “오른쪽”에서 부터 “공백”으로 채웁니다.

 

 

2. 상세 설명


[기본 format 예시]

💡 “%5s”, “-%5s” 
- 총 5개의 문자열에 왼쪽에서부터 공백을 채우거나 오른쪽에서부터 공백을 채우는 방식을 의미합니다.
구분자 설명
”%” 시작
”(없음), -” 왼쪽(없음), 오른쪽(-)에서 채워갈지 결정합니다.
(2) ”0 ~ 9” 채우려는 개수 (*해당 값은 이미 정의된 문자열 포함 개수를 의미합니다)
”s, d” 문자열(s), 숫자(d)
/*
 * "왼쪽"에서부터 "공백" 문자열을 채워넣습니다.
 * 1. 해당 예시는 왼쪽에서부터 지정한 문자열을 포함하여 총 5개의 문자열 개수가 만들어지는데 지정한 문자열을 제외한 공백으로 이를 채웁니다.
 * 2. 해당 예시에는 공백을 다시 "z"라는 문자열로 바꿉니다.
 */
String lPadStr = "abc";
lPadStr = String.format("%5s", lPadStr).replace(" ", "z");  // zzabc

/*
 * "오른쪽"에서부터 "공백" 문자열을 채워넣습니다.
 * 1. 해당 예시는 오른쪽에서부터 지정한 문자열을 포함하여 총 5개의 문자열 개수가 만들어지는데 지정한 문자열을 제외한 공백으로 이를 채웁니다.
 * 2. 해당 예시에서는 공백을 다시 "z"라는 문자열로 바꿉니다.
 */
String rPadStr = "abc";
rPadStr = String.format("%-5s", rPadStr).replace(" ", "z"); // abczz

 

 

 

2) 숫자 왼쪽/오른쪽에서 값 채우는 방법


💡 해당 부분에서는 숫자를 기준으로 왼쪽/오른쪽에 “0~9 값”을 채우는 방법입니다.

1. 기본 format


명령어 설명
%0[최소길이]d 최소길이만큼 “숫자”를 출력하며, “왼쪽”에서부터 0으로 채웁니다.
%-0[최소길이]d 해당 방법은 존재하지 않습니다.
그래서 "%-[최소길이]s" 를 이용하여 생긴 공백을 문자열로 구성된 숫자 값으로 넣어주는 방식으로 구성해야합니다.

 

2. 상세 설명


[기본 format 예시]

💡 “%05d”, “-%05d”  -> (대체) String.format("%-5s", rPadIntStr).replace(" ", "0");
- 총 5개의 숫자에 왼쪽/오른쪽에서부터 0을 채워서 구성합니다.
구분자 설명
”%” 시작
”(없음), -” 왼쪽(없음), 오른쪽(-)에서 채워갈지 결정
(1) ”0 ~ 9” 채워질 문자열 내의 숫자 값
(2) ”0 ~ 9” 채우려는 개수 (*해당 값은 이미 정의된 문자열 포함 개수를 의미합니다)
”s, d” 문자열(s), 숫자(d)
/*
 * 왼쪽에서부터 0의 값을 채워넣습니다.
 * 1. 해당 예시는 왼쪽에서부터 지정한 문자열을 포함하여 총 5개의 문자열 개수가 만들어지는데 지정한 문자열을 제외한 0으로 이를 채웁니다.
 * 2. 해당 예시에는 00123 값이 출력이 됩니다.
 */
String lPadIntStr = "123";
lPadIntStr = String.format("%05d", Integer.parseInt(lPadIntStr));                   // 00123
int LPadInt = Integer.parseInt(lPadIntStr);                                         // 123

/*
 * 오른쪽에서부터 공백 문자열을 채워넣습니다. (* "%-05d"와 같이 숫자에서 뒤에서부터 채우는것은 존재하지 않습니다.)
 * 1. 해당 예시는 오른쪽에서부터 지정한 문자열을 포함하여 총 5개의 문자열 개수가 만들어지는데 지정한 문자열을 제외한 공백으로 이를 채웁니다.
 * 2. 해당 예시에서는 공백을 다시 "0"라는 문자열로 바꿉니다.
 */
String rPadIntStr = "123";
rPadIntStr = String.format("%-5s", rPadIntStr).replace(" ", "0");       // 12300
int RPadInt = Integer.parseInt(rPadIntStr);                             // 12300

 

 

 

 

 

 

오늘도 감사합니다. 😀

 

 

 

 

 

 

그리드형