การใช้คลาส StringBuffer
การเพิ่มขีดล่างหน้าอักษรตัวพิมพ์ใหญ่ในสตริงโดยใช้ StringBuffer -
-
สร้างวัตถุ StringBuffer ว่าง
-
เมธอด isUpperCase() ของคลาส Character ยอมรับอักขระหนึ่งตัวและตรวจสอบว่าเป็นตัวพิมพ์ใหญ่หรือไม่ ถ้าเป็นเช่นนั้น เมธอดนี้จะคืนค่าเป็นจริง ใช้วิธีนี้ ตรวจสอบอักขระแต่ละตัวในสตริง
-
ในกรณีของตัวพิมพ์ใหญ่ให้เติมขีดล่างก่อนโดยใช้วิธี append()
ตัวอย่าง
public class Adding_BeforeCapital {
public static void main(String args[]) {
String str = "HelloHowAreYouWelcome";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
if(Character.isUpperCase(str.charAt(i))) {
sb.append("_");
sb.append(str.charAt(i));
} else {
sb.append(str.charAt(i));
}
}
String result = sb.toString();
System.out.println(result);
}
} ผลลัพธ์
_Hello_How_Are_You_Welcome
การใช้นิพจน์ทั่วไป
วิธีการreplaceAll() ของคลาส String ยอมรับสองสตริงที่แสดงนิพจน์ทั่วไปและสตริงการแทนที่ และแทนที่ค่าที่ตรงกันด้วยสตริงที่กำหนด
ตัวอย่าง
public class Adding_BeforeCapital {
public static void main(String args[]) {
String str = "HelloHowAreYouWelcome";
String result = str.replaceAll("()([A-Z])", "$1_$2");
System.out.println(result);
}
} ผลลัพธ์
_Hello_How_Are_You_Welcome