使用 Java LPAD 和 RPAD 格式化。在字符串两侧填写指定字符。
Java中的字符串的 SQL 函数LPAD,,RPAD下面是一个示例源,执行与下面类似的过程。
它们是定长格式这在处理以下问题时非常有用
- LPAD... 返回填充到字符串左侧的重复字符串,这样总字符数就是指定的位数。
- RPAD... 返回在字符串右侧填充的重复字符串,使总字符数达到指定的位数。
示例程序
/**
 * 执行 RPAD。
 * 将字符串[str]右侧的指定字符串[addStr]添加到[len]
 * 插入直至满。
 * @param str 目标字符串
 * @param len 要重新填充的位数(指定执行 RPAD 后的大小)
 * @param addStr 要插入的字符串
 * @return 转换后的字符串。
 */
公共静态字符串rpad(字符串str,int len,字符串addStr){
    返回 fillString(str, “R”, len, addStr);
}
/**
 * 将要添加的字符串[addStr]添加到字符串[str]中
 * 在[位置]处插入,直到[长度]填满。
 *
 * *即使 [str] 为 null 或空文字,也使用 [addStr]
 * 返回插入的结果,直到[len]填满。
 * @param str 目标字符串
 * @param 位置 在 ⇒ L 或 l 之前插入 在 ⇒ R 或 r 之后插入
 * @param len 要补充的位数
 * @param addStr 要插入的字符串
 * @return 转换后的字符串。
 */
公共静态字符串 fillString(字符串 str, 字符串位置,
        国际长度,
        字符串 addStr) {
    if (addStr == null || addStr.length() == 0) {
        抛出新的 IllegalArgumentException
            (“要插入的字符串的值无效。addStr=”+addStr);
    }
    if (str == null) {
        字符串=“”;
    }
    StringBuffer 缓冲区 = new StringBuffer(str);
    while (len > buffer.length()) {
        if (position.equalsIgnoreCase(“l”)) {
            int sum = buffer.length() + addStr.length();
            如果(总和>长度){
                addStr = addStr.子字符串
                    (0,addStr.length() – (sum – len));
                buffer.insert(0, addStr);
            }别的{
                buffer.insert(0, addStr);
            }
        } 别的 {
            buffer.append(addStr);
        }
    }
    if (buffer.length() == len) {
        返回 buffer.toString();
    }
    返回 buffer.toString().substring(0, len);
}
执行结果
执行示例
public static void main(String[] args) {
    // 对于 lpad;向左填充空格,直到填满 5 个数字。
    String ret = lpad("abc", 5 , " ");
    System.out.println("'" + ret + "'");
    // 对于 rpad,向右填充空格,直到 5 位数字。
    ret = rpad("abc", 5 , " ");
    System.out.println("'" + ret + "'");。
    // 如果为空。
    ret = rpad("abc", 5 , " ");
    System.out.println("'" + ret + "'");
}
输出结果
'abc'。 ' 'abc ' ' 'abc ' '









