Java 字串左側/右側補字的方法如下。
在字串左側/右側補上固定長度的字,可利用String.format()
格式化字串搭配String.replace()
取代來實現。
字串左測補字的方法
/**
* 向左補特定字元
* @param str 原本的字串
* @param length 填補後的總長度
* @param padChar 要填補的字元
* @return 填補後的字串
*/
private static String leftPadding(String str, int length, char padChar) {
if(str == null) {
str = "";
}
if (str.length() > length) {
return str;
}
String pattern = "%" + length + "s";
return String.format(pattern, str).replace(' ', padChar);
}
字串右測補字的方法
/**
* 向右補特定字元
* @param str 原本的字串
* @param length 填補後的總長度
* @param padChar 要填補的字元
* @return 填補後的字串
*/
private static String rightPadding(String str, int length, char padChar) {
if(str == null) {
str = "";
}
if (str.length() > length) {
return str;
}
String pattern = "%-" + length + "s";
return String.format(pattern, str).replace(' ', padChar);
}
例如使用上面方法在左側/右側補0的效果如下。
System.out.println(leftPadding("123", 10, '0')); // 0000000123
System.out.println(rightPadding("123", 10, '0')); // 1230000000
除此之外也可以直接使用Apache Commons Lang函式庫的StringUtils.leftPad()
及StringUtils.rightPad()
。在左側/右側補0效果如下。
System.out.println(StringUtils.leftPad("123", 10, '0')); // 0000000123
System.out.println(StringUtils.rightPad("123", 10, '0')); // 1230000000
參考:
沒有留言:
張貼留言