优化 fillBefore 和 fillAfter。

feature/net-util
ZhouXY108 2023-05-30 11:20:21 +08:00
parent d9db0040d6
commit 25cf444960
2 changed files with 9 additions and 5 deletions

View File

@ -9,22 +9,22 @@ public class StrUtil {
return src; return src;
} }
char[] result = new char[minLength]; char[] result = new char[minLength];
Arrays.fill(result, c); Arrays.fill(result, 0, minLength - src.length(), c);
for (int i = 1; i <= src.length(); i++) { for (int i = 1; i <= src.length(); i++) {
result[minLength - i] = src.charAt(src.length() - i); result[minLength - i] = src.charAt(src.length() - i);
} }
return String.valueOf(result); return String.valueOf(result);
} }
public static String fillAfter(String src, int length, char c) { public static String fillAfter(String src, int minLength, char c) {
if (src.length() >= length) { if (src.length() >= minLength) {
return src; return src;
} }
char[] result = new char[length]; char[] result = new char[minLength];
Arrays.fill(result, c);
for (int i = 0; i < src.length(); i++) { for (int i = 0; i < src.length(); i++) {
result[i] = src.charAt(i); result[i] = src.charAt(i);
} }
Arrays.fill(result, src.length(), result.length, c);
return String.valueOf(result); return String.valueOf(result);
} }

View File

@ -11,12 +11,16 @@ class StrUtilTests {
@Test @Test
void testFillZero() { void testFillZero() {
char c = '='; char c = '=';
log.info(StrUtil.fillBefore("1", 6, c));
log.info(StrUtil.fillBefore("12", 6, c));
log.info(StrUtil.fillBefore("123", 6, c)); log.info(StrUtil.fillBefore("123", 6, c));
log.info(StrUtil.fillBefore("1234", 6, c)); log.info(StrUtil.fillBefore("1234", 6, c));
log.info(StrUtil.fillBefore("12345", 6, c)); log.info(StrUtil.fillBefore("12345", 6, c));
log.info(StrUtil.fillBefore("123456", 6, c)); log.info(StrUtil.fillBefore("123456", 6, c));
log.info(StrUtil.fillBefore("1234567", 6, c)); log.info(StrUtil.fillBefore("1234567", 6, c));
log.info(StrUtil.fillBefore("12345678", 6, c)); log.info(StrUtil.fillBefore("12345678", 6, c));
log.info(StrUtil.fillAfter("1", 6, c));
log.info(StrUtil.fillAfter("12", 6, c));
log.info(StrUtil.fillAfter("123", 6, c)); log.info(StrUtil.fillAfter("123", 6, c));
log.info(StrUtil.fillAfter("1234", 6, c)); log.info(StrUtil.fillAfter("1234", 6, c));
log.info(StrUtil.fillAfter("12345", 6, c)); log.info(StrUtil.fillAfter("12345", 6, c));