符串补齐,比如我计算一个字符串的长度,然后和默认长度进行比较,差多少就高位补齐,比如全部补0.有更快的方法吗?除了循环。
更快的可能没有了 不过你可以试试org.apache.commons.lang.StringUtils这个类
1
2
3
|
String test =
"3123123"
;
String value = StringUtils.leftPad(test,
10
,
"0"
);
ystem.out.println(value);
|
结果就是0003123123
2楼无疑是最佳方法,但是如果你只想用jdk里的api的话,我有个方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package
testPackage;
public
class
StringTest {
public
static
void
main(String[] args) {
//假设必须15位长
int
fullLength =
15
;
//假设输入123456
StringBuilder input =
new
StringBuilder(
"123456"
);
//预先定义一个15位0
StringBuilder zero =
new
StringBuilder(
"000000000000000"
);
String result = zero.substring(
0
, zero.length() - input.length()) + input;
System.out.println(result);
}
}
|
二楼的方法挺不好的,apache的那几个工具包挺好使的,不过String类下就有一个格式化的方法:
1
2
3
4
|
String str =
"gr"
;
String res = String.format(
"%5s"
, str);
res = res.replaceAll(
"\\s"
,
"1"
);
System.out.println(res);
//----------结果:111gr
|
/** * 补齐不足长度 * @param length 长度 * @param number 数字 * @return */ private String lpad(int length, int number) { String f = "%0" + length + "d"; return String.format(f, 0); }