Skip to content

Commit c0a5e01

Browse files
cdjolemaibin
authored andcommitted
Pad string. (eugenp#5669)
1 parent b35ad93 commit c0a5e01

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.baeldung.string.padding;
2+
3+
public class StringPaddingUtil {
4+
5+
public static String padLeftSpaces(String inputString, int length) {
6+
if (inputString.length() >= length) {
7+
return inputString;
8+
}
9+
StringBuilder sb = new StringBuilder();
10+
while (sb.length() < length - inputString.length()) {
11+
sb.append(' ');
12+
}
13+
sb.append(inputString);
14+
15+
return sb.toString();
16+
}
17+
18+
public static String padLeft(String inputString, int length) {
19+
if (inputString.length() >= length) {
20+
return inputString;
21+
}
22+
StringBuilder sb = new StringBuilder();
23+
for (int i = 0; i < length; i++) {
24+
sb.append(' ');
25+
}
26+
return sb.substring(inputString.length()) + inputString;
27+
}
28+
29+
public static String padLeftZeros(String inputString, int length) {
30+
return String
31+
.format("%1$" + length + "s", inputString)
32+
.replace(' ', '0');
33+
}
34+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.baeldung.string.padding;
2+
3+
import com.google.common.base.Strings;
4+
import org.apache.commons.lang3.StringUtils;
5+
import org.junit.Test;
6+
7+
import static org.junit.Assert.assertEquals;
8+
9+
public class StringPaddingUtilUnitTest {
10+
11+
String inputString = "123456";
12+
String expectedPaddedStringSpaces = " 123456";
13+
String expectedPaddedStringZeros = "0000123456";
14+
int minPaddedStringLength = 10;
15+
16+
@Test
17+
public void givenString_whenPaddingWithSpaces_thenStringPaddedMatches() {
18+
assertEquals(expectedPaddedStringSpaces, StringPaddingUtil.padLeftSpaces(inputString, minPaddedStringLength));
19+
}
20+
21+
@Test
22+
public void givenString_whenPaddingWithSpacesUsingSubstring_thenStringPaddedMatches() {
23+
assertEquals(expectedPaddedStringSpaces, StringPaddingUtil.padLeft(inputString, minPaddedStringLength));
24+
}
25+
26+
@Test
27+
public void givenString_whenPaddingWithZeros_thenStringPaddedMatches() {
28+
assertEquals(expectedPaddedStringZeros, StringPaddingUtil.padLeftZeros(inputString, minPaddedStringLength));
29+
}
30+
31+
@Test
32+
public void givenString_whenPaddingWithSpacesUsingStringUtils_thenStringPaddedMatches() {
33+
assertEquals(expectedPaddedStringSpaces, StringUtils.leftPad(inputString, minPaddedStringLength));
34+
}
35+
36+
@Test
37+
public void givenString_whenPaddingWithZerosUsingStringUtils_thenStringPaddedMatches() {
38+
assertEquals(expectedPaddedStringZeros, StringUtils.leftPad(inputString, minPaddedStringLength, "0"));
39+
}
40+
41+
@Test
42+
public void givenString_whenPaddingWithSpacesUsingGuavaStrings_thenStringPaddedMatches() {
43+
assertEquals(expectedPaddedStringSpaces, Strings.padStart(inputString, minPaddedStringLength, ' '));
44+
}
45+
46+
@Test
47+
public void givenString_whenPaddingWithZerosUsingGuavaStrings_thenStringPaddedMatches() {
48+
assertEquals(expectedPaddedStringZeros, Strings.padStart(inputString, minPaddedStringLength, '0'));
49+
}
50+
}

0 commit comments

Comments
 (0)