使用 Java LPAD 和 RPAD 进行格式化。在字符串的两侧填充指定的字符。
Java所以,字符串的 SQL 函数LPAD、无人机以下是一个执行类似过程的示例源代码。
这些都是固定长度格式这在处理[这件事]时非常有用。
- LPAD...此函数用重复字符串填充字符串的左侧,使字符总数达到指定的位数,然后返回结果。
- 无人机...此函数在字符串的右侧填充重复字符,使字符总数达到指定的位数,然后返回结果。
示例程序
/**
我们将执行RPAD。
* 将字符串 [str] 右侧指定的字符串 [addStr] 设置为 [len]。
* 插入直至充满。
* @param str 目标字符串
* @param len 要添加的数字位数(指定 RPAD 后的大小)。
* @param addStr 要插入的字符串
* @return 转换后的字符串。
*/
public static String rpad(String str, int len, String addStr) {
return fillString(str, “R”, len, addStr);
}
/**
* 对于字符串 [str],添加要添加的字符串 [addStr]
* 从 [position] 指定的位置插入,直到填满 [len] 值。
*
即使 [str] 为空或为空字面量,[addStr] 仍然有效。
* 返回插入直到 [len] 满的结果。
* @param str 目标字符串
* @param position 插入位置在左或左之前 ⇒ 插入位置在右或右之后
* @param len 要添加的数字位数
* @param addStr 要插入的字符串
* @return 转换后的字符串。
*/
public static String fillString(String str, String position,
int len,,
String addStr) {
if (addStr == null || addStr.length() == 0) {
抛出新的 IllegalArgumentException
(要插入的字符串值无效。addStr=“+addStr);
}
如果 (str == null) {
str = "";
}
StringBuffer buffer = new StringBuffer(str);
while (len > buffer.length()) {
如果 (position.equalsIgnoreCase(“l”)) {
int sum = buffer.length() + addStr.length();
如果(总和 > 长度){
addStr = addStr.substring
(0,addStr.length() – (sum – len));
buffer.insert(0, addStr);
别的{
buffer.insert(0, addStr);
}
别的 {
buffer.append(addStr);
}
}
if (buffer.length() == len) {
return buffer.toString();
}
return buffer.toString().substring(0, len);
}
执行结果
◆示例
public static void main(String[] args) { // 左填充。在左侧填充空格,直到数字变为 5 位。 String ret = lpad("abc", 5 , " "); System.out.println("'" + ret + "'"); // 右填充。在右侧填充空格,直到数字变为 5 位。 ret = rpad("abc", 5 , " "); System.out.println("'" + ret + "'"); // 空值填充 ret = rpad(null, 5 , " "); System.out.println("'" + ret + "'"); }
◆输出结果
'' abc' ' abc' ' ' ''
