使用 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 + "'"); // 若為null ret = rpad(null, 5 , " "); System. out .println("'" + ret + "'"); }
◆輸出結果
'abc''abc'''