การทำให้ตัวอักษรเป็นตัวพิมพ์ใหญ่ในสตริง

Java:
การทำให้ตัวอักษรเป็นตัวพิมพ์ใหญ่ในสตริง

วิธีการ:

ไลบรารีมาตรฐานของ Java ไม่ได้มีวิธีโดยตรงในการทำให้สตริงทั้งหมดเป็นตัวพิมพ์ใหญ่ในครั้งเดียว แต่คุณสามารถทำได้ด้วยการผสมผสานวิธีการที่มีอยู่ สำหรับความต้องการที่ซับซ้อนยิ่งขึ้น ไลบรารีอื่นๆ เช่น Apache Commons Lang มอบวิธีแก้ไขที่ชัดเจน

การใช้วิธีการที่มีใน Java

เพื่อทำให้สตริงเป็นตัวพิมพ์ใหญ่โดยไม่ต้องใช้ไลบรารีภายนอก คุณสามารถแยกสตริงออกเป็นคำ ทำให้ตัวอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ แล้วจึงรวมกลับเข้าด้วยกัน นี่คือวิธีการง่ายๆ:

public class CapitalizeString {
    public static void main(String[] args) {
        String text = "hello, world!";
        String capitalizedText = capitalizeWords(text);
        System.out.println(capitalizedText); // แสดงผล: "Hello, World!"
    }

    public static String capitalizeWords(String str) {
        char[] chars = str.toLowerCase().toCharArray();
        boolean found = false;
        for (int i = 0; i < chars.length; i++) {
            if (!found && Character.isLetter(chars[i])) {
                chars[i] = Character.toUpperCase(chars[i]);
                found = true;
            } else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]=='\'') { 
                found = false;
            }
        }
        return String.valueOf(chars);
    }
}

โค้ดตัวอย่างนี้แปลงสตริงทั้งหมดเป็นตัวพิมพ์เล็ก จากนั้นจะวนซ้ำผ่านแต่ละอักขระ เพื่อทำให้ตัวอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ มันถือว่าช่องว่าง จุด และอัญประกาศเป็นตัวแบ่งคำ

การใช้ Apache Commons Lang

ไลบรารี Apache Commons Lang มอบวิธีแก้ไขที่ง่ายดายกว่าด้วยเมทอด WordUtils.capitalizeFully() ซึ่งจัดการกับกรณีพิเศษต่างๆ และตัวแบ่งคำให้คุณ:

// เพิ่มการอ้างอิง: org.apache.commons:commons-lang3:3.12.0

import org.apache.commons.text.WordUtils;

public class CapitalizeString {
    public static void main(String[] args) {
        String text = "hello, world!";
        String capitalizedText = WordUtils.capitalizeFully(text);
        System.out.println(capitalizedText); // แสดงผล: "Hello, World!"
    }
}

เพื่อใช้เมทอดนี้ คุณต้องเพิ่มไลบรารี Apache Commons Lang ไปยังโปรเจกต์ของคุณ ไลบรารีเมทอดนี้ไม่เพียงแต่ทำให้ตัวอักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ แต่ยังแปลงตัวอักษรที่เหลือในแต่ละคำเป็นตัวพิมพ์เล็ก โดยรับประกันรูปแบบการทำให้พิมพ์ใหญ่ที่สอดคล้องกันตลอดทั้งสตริง