1. 개요
이 짧은 사용방법(예제)에서는 Java 에서 문자열 을 채우는 방법을 알아 봅니다 . 우리는 주로 왼쪽 패드에 초점을 맞출 것입니다. 즉, 원하는 길이에 도달 할 때까지 선행 공백이나 0을 추가합니다.
오른쪽으로 채워진 문자열에 대한 접근 방식 은 매우 유사하므로 차이점 만 지적하겠습니다.
2. 사용자 지정 메서드를 사용 하여 문자열 채우기
Java 의 String 클래스는 패딩을위한 편리한 방법을 제공하지 않으므로 자체적으로 여러 메서드를 만들어 보겠습니다. 하지만 먼저 몇 가지 기대치를 설정해 보겠습니다.
assertEquals(" 123456", padLeftZeros("123456", 10));
assertEquals("0000123456", padLeftZeros("123456", 10));
2.1. StringBuilder 사용
StringBuilder 및 일부 절차 논리를 사용 하여이를 달성 할 수 있습니다 .
public String padLeftZeros(String inputString, int length) {
if (inputString.length() >= length) {
return inputString;
}
StringBuilder sb = new StringBuilder();
while (sb.length() < length - inputString.length()) {
sb.append('0');
}
sb.append(inputString);
return sb.toString();
}
여기에서 원본 텍스트의 길이가 원하는 길이보다 크거나 같으면 변경되지 않은 버전을 반환합니다. 그렇지 않으면 공백으로 시작하여 원래 문자열을 추가하여 새 문자열 을 만듭니다 .
물론 다른 문자로 채우려면 0 대신 사용할 수 있습니다 .
마찬가지로 오른쪽 채우기를 원하면 대신 new StringBuilder (inputString) 를 수행 한 다음 끝에 공백을 추가하면됩니다.
2.2. 하위 문자열 사용
왼쪽 패딩을 할 수있는 또 다른 방법은 것입니다 크리에이트 문자열 에만 패드 문자가 포함 된 다음 사용 원하는 길이 문자열 () 메소드를 :
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
sb.append(' ');
}
return sb.substring(inputString.length()) + inputString;
2.3. String.format 사용
마지막으로 Java 5부터는 String .format () 사용할 수 있습니다 .
return String.format("%1$" + length + "s", inputString).replace(' ', '0');
기본적으로 채우기 작업은 공백을 사용하여 수행됩니다. 이것이 0이나 다른 문자로 채우려면 replace () 메서드 를 사용해야하는 이유 입니다.
오른쪽 패드의 경우 다른 플래그를 사용해야합니다. % 1 $-
3. 라이브러리를 사용 하여 문자열 채우기
그리고 이미 패딩 기능을 제공하는 외부 라이브러리가 있습니다.
3.1. Apache Commons Lang
Apache Commons Lang은 Java 유틸리티 클래스 패키지를 제공합니다. 가장 인기있는 것 중 하나는 StringUtils 입니다.
이를 사용하려면 pom.xml 파일에 의존성 을 추가 하여 프로젝트에 포함시켜야 합니다.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
그리고 나서 우리 가 만든 메소드와 마찬가지로 inputString 과 length를 전달합니다 . 패딩 문자를 전달할 수도 있습니다.
assertEquals(" 123456", StringUtils.leftPad("123456", 10));
assertEquals("0000123456", StringUtils.leftPad("123456", 10, "0"));
다시 말하지만, 문자열 은 기본적으로 공백으로 채워지거나 다른 채우기 문자를 명시 적으로 설정해야합니다.
해당하는 rightPad () 메서드도 있습니다.
Apache Commons Lang 3의 더 많은 기능을 탐색하려면 소개 예제을 확인하십시오 . StringUtils 클래스를 사용하여 문자열을 조작하는 다른 방법 을 보려면 이 문서 를 참조 하십시오 .
3.2. Google 구아바
우리가 사용할 수있는 또 다른 라이브러리는 Google의 Guava 입니다. 물론, 먼저 의존성 을 추가하여 프로젝트에 추가해야 합니다 .
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.0-jre</version>
</dependency>
그런 다음 Strings 클래스 를 사용하십시오 .
assertEquals(" 123456", Strings.padStart("123456", 10, ' '));
assertEquals("0000123456", Strings.padStart("123456", 10, '0'));
이 메서드에는 기본 패드 문자가 없으므로 매번 전달해야합니다.
오른쪽 패드에는 padEnd () 메서드를 사용할 수 있습니다 .
구아바 라이브러리는 훨씬 더 많은 기능을 제공하며 많은 기능을 다루었습니다. 여기에서 구아바 관련 기사를 찾을 수 있습니다 .
4. 결론
이 빠른 기사에서는 Java 에서 문자열 을 채우는 방법을 설명했습니다. 자체 구현 또는 기존 라이브러리를 사용하여 예제를 제시했습니다.
평소처럼 전체 소스 코드는 GitHub 에서 찾을 수 있습니다 .