การใช้คลาส 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