使用 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' ' ' ''
