Ran*_*aul 1 java string groovy java-8
下面是我用来生成一个字符串引用id的方法,它的长度为12,以'X'开头,以输入结束number,String的中间用零填充
public String generateRefId(Long number){
int digits = 1 + (int)Math.floor(Math.log10(number));
int length = 11 - digits;
StringBuilder refid = new StringBuilder(12);
refid.append('X');
for(int i= length;i> 0;i--) {
refid.append('0');
}
refid.append(number);
Assert.assertEquals(refid.length(),12);
return refid.toString();
}
Run Code Online (Sandbox Code Playgroud)
以下是用例
Input Output
12345 X00000012345
999999999 X00999999999
Run Code Online (Sandbox Code Playgroud)
上面的方法工作正常,但我想知道上述方法是否可以使用java 8进一步优化?
你可以用String.format.例如
String.format("X%011d", 4366)
Run Code Online (Sandbox Code Playgroud)
这会0在左侧填充数字.但请注意,数字越大,将占用更多空间.
groovy:000> String.format("X%011d", 4366)
===> X00000004366
groovy:000> String.format("X%011d", 111111111111)
===> X111111111111
Run Code Online (Sandbox Code Playgroud)