예를 들어 문자열은 다음과 같습니다.
"Apple"
8 문자를 채우기 위해 0을 추가하고 싶습니다.
"000Apple"
어떻게해야합니까?
답변
도서관의 도움없이해야 할 경우 :
("00000000" + "Apple").substring("Apple".length())
(문자열이 8자를 넘지 않는 한 작동합니다.)
답변
public class LeadingZerosExample {
public static void main(String[] args) {
int number = 1500;
// String format below will add leading zeros (the %0 syntax)
// to the number above.
// The length of the formatted string will be 7 characters.
String formatted = String.format("%07d", number);
System.out.println("Number with leading zeros: " + formatted);
}
}
답변
StringUtils.leftPad(yourString, 8, '0');
이것은 commons-lang에서 온 것 입니다. javadoc 참조
답변
이것이 그가 정말로 요구 한 것입니다.
String.format("%0"+ (8 - "Apple".length() )+"d%s",0 ,"Apple");
산출:
000Apple
답변
다른 답변에 사용 된 String.format 메소드를 사용하여 0의 문자열을 생성 할 수 있습니다.
String.format("%0"+length+"d",0)
형식 문자열에서 선행 0의 수를 동적으로 조정하여 문제에 적용 할 수 있습니다.
public String leadingZeros(String s, int length) {
if (s.length() >= length) return s;
else return String.format("%0" + (length-s.length()) + "d%s", 0, s);
}
여전히 지저분한 솔루션이지만 정수 인수를 사용하여 결과 문자열의 총 길이를 지정할 수 있다는 장점이 있습니다.
답변
구아바의 Strings
유틸리티 클래스 사용하기 :
Strings.padStart("Apple", 8, '0');
답변
이것을 사용할 수 있습니다 :
org.apache.commons.lang.StringUtils.leftPad("Apple", 8, "0")