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