Study/java

[Java] 문자열에 공백이나 0을 자리수만큼 채우는 방법

 

문자열을 다룰 때 일정 자리수를 확보해야 하거나 특정 문자를 자리수만큼 채워야할 때가 있습니다.

이럴 때 사용하기 좋은 메소드를 소개해드리겠습니다.

 

왼쪽에 채우기

String.format 메소드 사용

String str = "문자열";

// 왼쪽에 공백 채우기
String spaceFillStr = String.format("%10s", str);
System.out.println("spaceFillStr = " + spaceFillStr);

// 왼쪽에 0 채우기
String zeroFillStr = String.format("%10s", str).replace(" ", "0");
System.out.println("zeroFillStr  = " + zeroFillStr);

String.format을 사용하여 채우기
String.format을 사용하여 채우기

String.format 메소드를 사용하여 10자리의 공간을 확보하고 남은 공간에 공백이나 0을 채웠습니다.

 

0의 경우에는 먼저 공백으로 채운 다음 replace를 사용하여 공백을 모두 0으로 바꾸는 방식을 사용했습니다.

문자열이 아니라 숫자 타입이면 %010d 형식으로 사용하면 됩니다.

String zeroLeftFillInt = String.format("%010d", 123);
System.out.println("zeroLeftFillInt = " + zeroLeftFillInt);

 

 

 

 

StringUtils.leftPad() 사용

apache-commons-lang3 라이브러리 추가

 

먼저 StringUtils 클래스를 사용하기 위해 라이브러리를 추가해야 합니다.

// Maven
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

// Gradle
dependencies {
    implementation 'org.apache.commons:commons-lang3:3.12.0'
}

 

사용할 StringUtils 클래스는 스프링 라이브러리에 포함된 org.springframework.util.StringUtils 클래스와는 다른 클래스입니다.

그래서 commons-lang3 라이브러리를 따로 추가해야 합니다.

 

라이브러리를 추가한 후 다음과 같이 사용하면 됩니다.

import org.apache.commons.lang3.StringUtils;

...

// 왼쪽 공백 채우기
String spaceLeftFillStr = StringUtils.leftPad("문자열", 10);
System.out.println("spaceLeftFillStr = " + spaceLeftFillStr);

// 왼쪽 0 채우기
String zeroLeftFillStr = StringUtils.leftPad("문자열", 10, "0");
System.out.println("zeroLeftFillStr = " + zeroLeftFillStr);

StringUtils.leftPad를 사용하여 채우기
StringUtils.leftPad를 사용하여 채우기

 

 

 

 

오른쪽에 채우기

String.format 메소드 사용

String str = "문자열";

// 오른쪽에 공백 채우기
String spaceRightFillStr = String.format("%-10s", str);
System.out.println("spaceRightFillStr = " + spaceRightFillStr + ".");

// 오른쪽에 0 채우기
String zeroRightFillStr = String.format("%-10s", str).replace(" ", "0");
System.out.println("zeroRightFillStr  = " + zeroRightFillStr);

// 오른쪽에 - 채우기
String minusRightFillStr = String.format("%-10s", str).replace(" ", "-");
System.out.println("minusRightFillStr = " + minusRightFillStr);
String.format을 사용하여 오른쪽에 채우기
String.format을 사용하여 오른쪽에 채우기

공백이라 자리수가 잘 안보여서 맨 끝에 점을 찍었습니다.

오른쪽에 공백이나 특정 문자가 채워진 것을 확인할 수 있습니다.

 

StringUtils.rightPad() 사용

StringUtils.leftPad 메소드처럼 rightPad() 메소드도 존재합니다.

import org.apache.commons.lang3.StringUtils;

...

// 오른쪽 공백 채우기
String spaceRightFillStr = StringUtils.rightPad("문자열", 10);
System.out.println("spaceRightFillStr = " + spaceRightFillStr + ".");

// 오른쪽 0 채우기
String zeroRightFillStr = StringUtils.rightPad("문자열", 10, "0");
System.out.println("zeroRightFillStr  = " + zeroRightFillStr);
StringUtils.rightPad를 사용하여 채우기
StringUtils.rightPad를 사용하여 채우기

String.format 메소드를 사용했을 때와 동일한 결과를 확인할 수 있습니다.

 

 

읽으면 좋은 글

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

 

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

format은 문자열을 원하는 포맷에 맞게 변환해주는 메소드입니다. format(Locale l, String format, Object... args)정해진 format에 맞게 문자열을 만들어주는 메소드입니다.format에는 여러개의 형식을 사용할

priming.tistory.com