Trong bài viết ngắn này, chúng ta sẽ xem cách đệm một chuỗi trong Java. Chúng ta sẽ tập trung chủ yếu vào phần đệm bên trái, nghĩa là chúng ta sẽ thêm các khoảng trắng hoặc số 0 ở đầu cho đến khi nó đạt được độ dài mong muốn.
1. Sử dụng custom method
1.1. Sử dụng StringBuilder
@Test
void testPadString() {
System.out.println(padLeftZeros("abcd", 10));
}
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();
}
000000abcd
1.2. Sử dụng substring
@Test
void testPadString() {
System.out.println(padLeftZeros("abcd", 10));
}
public String padLeftZeros(String inputString, int length) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
sb.append("0");
}
return sb.substring(inputString.length()) + inputString;
}
000000abcd
1.3. Sử dụng String.format
@Test
void testPadString() {
System.out.println(padLeftZeros("abcd", 10));
}
public String padLeftZeros(String inputString, int length) {
return String.format("%1$" + length + "s", inputString).replace(' ', '0');
}
000000abcd
Theo mặc định, thao tác đệm sẽ được thực hiện bằng dấu cách. Đó là lý do tại sao chúng ta cần sử dụng phương thức replace() nếu chúng ta muốn đệm bằng số 0 hoặc bất kỳ ký tự nào khác.
Đối với phần đệm bên phải, chúng ta chỉ cần sử dụng một cờ khác: %1$-.
2. Sử dụng thư viện
2.1. Apache Commons Lang
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
@Test
void testPadString() {
System.out.println(StringUtils.leftPad("abcd", 10));
System.out.println(StringUtils.leftPad("abcd", 10, "0"));
System.out.println(StringUtils.leftPad("abcd", 10, " "));
System.out.println(StringUtils.rightPad("abcd", 10));
System.out.println(StringUtils.rightPad("abcd", 10, "0"));
System.out.println(StringUtils.rightPad("abcd", 10, " "));
}
abcd
000000abcd
abcd
abcd
abcd000000
abcd
String leftPad(String str, int size, char padChar)
Mặc định trong padChar trong phương thức này là khoảng trắng ” “.
Be First to Comment