我正在阅读,但找不到合适的代码片段。我正在寻找一个函数,它接受一个字符串并在左侧填充零(0),直到整个字符串长度为8位。所有其他代码片段都只能让整数控制填充多少,而不能控制填充多少,直到整个字符串长度为x位。使用Java实现。
示例:
BC238 => 000BC289 4 => 00000004
谢谢。
示例:
BC238 => 000BC289 4 => 00000004
谢谢。
如果你有一个长度不超过8个字符的字符串,可以像这样处理:
s = "00000000".substring(0, 8 - s.length()) + s;
实际上,这也可以正常工作:
s = "00000000".substring(s.length()) + s;
如果你不确定变量 s
的长度是否小于等于8个字符,那么在使用上述方法之前需要进行测试(或者使用 Math.min(8, s.length())
或准备捕获 IndexOutOfBoundsException
异常)。String s = String.format("%08x", Integer.valueOf(val));
org.apache.commons.lang.StringUtils.leftPad(String str, int size, char padChar)
You can take a look here
s = (s.length()) < 8 ? ("00000000".substring(s.length()) + s) : s;
s = "00000000".substring(Math.min(8, s.length())) + s;
我更喜欢使用现有的库方法,比如来自Apache Commons的StringUtils
方法或String.format(...)
方法。如果使用库方法且方法名合理,代码意图会更加清晰。
一种懒惰的方法是使用类似于:Right("00000000" + yourstring, 8) 的方式,这里提供了 Right 函数的简单实现:http://geekswithblogs.net/congsuco/archive/2005/07/07/45607.aspx