AdSense

網頁

2019/12/26

Java 字串左側/右側補字 String right left padding character

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

參考:

沒有留言:

AdSense