有一些簡單的方法能夠在Java中填充字符串嗎? html
彷佛應該在相似StringUtil的API中使用某些東西,可是我找不到能作到這一點的東西。 java
這怎麼樣 apache
字符串爲「 hello」,所需填充爲15,左側填充爲「 0」 api
String ax="Hello"; while(ax.length() < 15) ax="0"+ax;
簡單的事情: app
該值應該是一個字符串。 若是不是,則將其轉換爲字符串。 如"" + 123
或Integer.toString(123)
ui
// let's assume value holds the String we want to pad String value = "123";
子字符串從值長度char索引開始,直到填充的結束長度: spa
String padded="00000000".substring(value.length()) + value; // now padded is "00000123"
更確切 code
向右墊: orm
String padded = value + ("ABCDEFGH".substring(value.length())); // now padded is "123DEFGH"
左墊: htm
String padString = "ABCDEFGH"; String padded = (padString.substring(0, padString.length() - value.length())) + value; // now padded is "ABCDE123"
不少人都有一些很是有趣的技術,可是我想保持簡單,因此我繼續:
public static String padRight(String s, int n, char padding){ StringBuilder builder = new StringBuilder(s.length() + n); builder.append(s); for(int i = 0; i < n; i++){ builder.append(padding); } return builder.toString(); } public static String padLeft(String s, int n, char padding) { StringBuilder builder = new StringBuilder(s.length() + n); for(int i = 0; i < n; i++){ builder.append(Character.toString(padding)); } return builder.append(s).toString(); } public static String pad(String s, int n, char padding){ StringBuilder pad = new StringBuilder(s.length() + n * 2); StringBuilder value = new StringBuilder(n); for(int i = 0; i < n; i++){ pad.append(padding); } return value.append(pad).append(s).append(pad).toString(); }
您能夠使用內置的StringBuilder append()和insert()方法來填充可變字符串長度:
AbstractStringBuilder append(CharSequence s, int start, int end) ;
例如:
private static final String MAX_STRING = " "; //20 spaces Set<StringBuilder> set= new HashSet<StringBuilder>(); set.add(new StringBuilder("12345678")); set.add(new StringBuilder("123456789")); set.add(new StringBuilder("1234567811")); set.add(new StringBuilder("12345678123")); set.add(new StringBuilder("1234567812234")); set.add(new StringBuilder("1234567812222")); set.add(new StringBuilder("12345678122334")); for(StringBuilder padMe: set) padMe.append(MAX_STRING, padMe.length(), MAX_STRING.length());
Apache StringUtils
有幾種方法: leftPad
, rightPad
, center
和repeat
。
可是請注意,正如其餘人在此答案中提到並證實的那樣,JDK中的String.format()
和Formatter
類是更好的選擇。 在公共代碼上使用它們。