2013-10-28 86 views
0

我有一個字符串,我想填充任何給定字符的字符串給定的長度。 當然我可以寫一個循環語句並完成工作,但那不是我正在尋找的。我用使用java.lang.String.format()填充給定字符的字符串

一種方法是

myString = String.format("%1$"+ n + "s", myString).replace(' ', newChar); 

這個工程除了當myString中已經有一個空間的罰款。是否有使用的String.format()更好的解決方案

回答

1

您可以嘗試使用共享StringUtils的rightPadleftPad方法,如下圖所示。

StringUtils.leftPad("test", 8, 'z'); 

輸出,

zzzztest

0

如果字符串不包含 '0' 的符號,你可以這樣做:

int n = 30; // assert that n > test.length() 
char newChar = 'Z'; 
String test = "string with no zeroes"; 
String result = String.format("%0" + (n - test.length()) + "d%s", 0, test) 
    .replace('0', newChar); 
// ZZZZZZZZZstring with no zeroes 

,或者如果它的作用:

test = "string with 0 00"; 
result = String.format("%0" + (n - test.length()) + "d", 0).replace('0', newChar) 
    + test; 
// ZZZZZZZZZZZZZZstring with 0 00 

// or equivalently: 
result = String.format("%" + (n - test.length()) + "s", ' ').replace(' ', newChar) 
    + test;