我知道我可以使用帶有空格填充:填充串0的使用格式
String.format("%6s", "abc"); // ___abc (three spaces before abc
,但我似乎無法找到如何產生的:
000abc
編輯:
在詢問之前,我嘗試了%06s
。在更多(未嘗試)答案出現之前讓你知道。
目前我有:String.format("%6s", data).replace(' ', '0')
但我認爲必須有更好的方法。
我知道我可以使用帶有空格填充:填充串0的使用格式
String.format("%6s", "abc"); // ___abc (three spaces before abc
,但我似乎無法找到如何產生的:
000abc
編輯:
在詢問之前,我嘗試了%06s
。在更多(未嘗試)答案出現之前讓你知道。
目前我有:String.format("%6s", data).replace(' ', '0')
但我認爲必須有更好的方法。
I think this is what you're looking for.
String.format("%06s", "abc");
-1這是數字,而不是字符串。 – MByD 2011-05-30 19:58:06
這個怎麼樣? http://stackoverflow.com/questions/388461/padding-strings-in-java/388482#388482 – 2011-05-30 20:02:22
你真的應該考慮使用StringUtils從阿帕奇共享郎這樣的字符串操作任務,你的代碼就會變得更具有可讀性。你的例子是StringUtils.leftPad("abc", 6, ' ');
快速和骯髒的(設置「000 .... 00」字符串的長度作爲最大len個大家支持):
public static String lefTpadWithZeros(String x,int minlen) {
return x.length()<minlen ?
"000000000000000".substring(0,minlen-x.length()) + x : x;
}
嘗試滾動自己的靜態實用方法
public static String leftPadStringWithChar(String s, int fixedLength, char c){
if(fixedLength < s.length()){
throw new IllegalArgumentException();
}
StringBuilder sb = new StringBuilder(s);
for(int i = 0; i < fixedLength - s.length(); i++){
sb.insert(0, c);
}
return sb.toString();
}
,然後用它,因爲這樣的
System.out.println(leftPadStringWithChar("abc", 6, '0'));
OUTPU牛逼
000abc
通過一切手段,找到這樣的東西,你喜歡一個圖書館和學習,所以你重新發明輪子少(有時有單位)什麼在你閃亮的新的工具箱。我更喜歡Guava到Apache Commons。在這種情況下,它們是等效的:
Strings.padStart("abc",6,'0');
順便說一句,在問這個問題之前,我使用了'%06s',只是在更多(未嘗試)答案出現之前讓你知道。 – OscarRyz 2011-05-30 19:59:09