การจัดรูปแบบด้วย Java LPAD และ RPAD เติมช่องว่างให้กับอักขระที่ระบุไว้ทั้งสองด้านของสตริง
ชวาดังนั้น ฟังก์ชัน SQL สำหรับสตริงแอลพีเอดี、อาร์พีเอดีนี่คือตัวอย่างโค้ดที่ดำเนินการในลักษณะเดียวกัน
สิ่งเหล่านี้คือรูปแบบความยาวคงที่สิ่งนี้มีประโยชน์มากเมื่อต้องรับมือกับ [เรื่องนี้]
- แอลพีเอดี...ฟังก์ชันนี้จะเติมสตริงที่ซ้ำกันทางด้านซ้ายของสตริงหลัก จนกระทั่งจำนวนอักขระทั้งหมดถึงจำนวนหลักที่ระบุ จากนั้นจึงส่งคืนผลลัพธ์
- อาร์พีเอดี...ฟังก์ชันนี้จะเติมอักขระที่ซ้ำกันทางด้านขวาของสตริง จนกระทั่งจำนวนอักขระทั้งหมดถึงจำนวนหลักที่ระบุ จากนั้นจึงส่งคืนผลลัพธ์
ตัวอย่างโปรแกรม
/**
* เราจะดำเนินการ RPAD
* สตริง [addStr] ที่ระบุทางด้านขวาของสตริง [str] จะถูกตั้งค่าเป็น [len]
* เสียบจนสุด
* @param str สตริงเป้าหมาย
* @param len จำนวนหลักที่จะบวก (ระบุขนาดหลังจาก RPAD)
* @param addStr สตริงที่จะแทรก
* @return สตริงที่แปลงแล้ว
*/
public static String rpad(String str, int len, String addStr) {
ส่งคืนค่า fillString(str, “R”, len, addStr);
}
/**
* สำหรับสตริง [str] ให้เพิ่มสตริงที่จะเพิ่ม [addStr]
* แทรกข้อมูล ณ ตำแหน่งที่ระบุโดย [position] จนกว่าจะเต็มค่า [len]
*
* *แม้ว่า [str] จะเป็นค่าว่างหรือค่าตัวอักษรว่างเปล่า [addStr] ก็ยังคงทำงานได้*
* ส่งคืนผลลัพธ์ของการแทรกจนกว่า [len] จะเต็ม
* @param str สตริงเป้าหมาย
* @param position แทรกก่อน ⇒ L หรือ l แทรกหลัง ⇒ R หรือ r
* @param len จำนวนหลักที่จะบวก
* @param addStr สตริงที่จะแทรก
* @return สตริงที่แปลงแล้ว
*/
public static String fillString(String str, String position,
ความยาวภายใน,
สตริง addStr) {
if (addStr == null || addStr.length() == 0) {
โยนข้อยกเว้นอาร์กิวเมนต์ที่ไม่ถูกต้องใหม่
(ค่าของสตริงที่จะแทรกไม่ถูกต้อง 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));
บัฟเฟอร์.แทรก(0, addStr);
อื่น{
บัฟเฟอร์.แทรก(0, addStr);
}
อื่น {
บัฟเฟอร์.เพิ่ม(addStr);
}
}
if (buffer.length() == len) {
return buffer.toString();
}
return 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(null, 5 , " "); System.out.println("'" + ret + "'"); }
◆ผลลัพธ์
''abc' 'abc' ' ' ''
