บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการทำให้ตัวอักษรแรกของแต่ละคำในสตริงเป็นตัวพิมพ์ใหญ่ (Capitalize) สตริงเป็นชนิดข้อมูลที่ประกอบด้วยตัวอักษรหนึ่งตัวขึ้นไป และล้อมรอบด้วยเครื่องหมายคำพูดคู่ (" ")
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
Input string: java program
เอาต์พุทที่คาดหวัง:
The string after capitalizing the first letter is: Java program
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศสตริง 3 ตัว: input_string, first_letter, remaining_letters ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - ดึงคำแรกของสตริงเป็น substring ใช้ .toUpperCase() แปลงเป็นพิมพ์ใหญ่ แล้วต่อกลับกับสตริงที่เหลือ ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
public class Capitalize {
public static void main(String[] args) {
String input_string = "java program";
System.out.println("The string is defined as: " + input_string);
String first_letter = input_string.substring(0, 1);
String remaining_letters = input_string.substring(1, input_string.length());
first_letter = first_letter.toUpperCase();
input_string = first_letter + remaining_letters;
System.out.println("The string after capitalizing the first letter is: " + input_string);
}
}
เอาต์พุท
The string is defined as: java program The string after capitalizing the first letter is: Java program
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
public class Capitalize {
public static String capitalize_letter(String input_string) {
String first_letter = input_string.substring(0, 1);
String remaining_letters = input_string.substring(1, input_string.length());
first_letter = first_letter.toUpperCase();
input_string = first_letter + remaining_letters;
return input_string;
}
public static void main(String[] args) {
String input_string = "java program";
System.out.println("The string is defined as: " + input_string);
String result = capitalize_letter(input_string);
System.out.println("The string after capitalizing the first letter is: " + result);
}
}
เอาต์พุท
The string is defined as: java program The string after capitalizing the first letter is: Java program
หมายเหตุ: โค้ดตัวอย่างนี้ทำให้ตัวอักษรแรกของ ทั้งสตริง เป็นพิมพ์ใหญ่เท่านั้น (ไม่ใช่ทุกคำ)
วิธีทำให้ทุกคำขึ้นต้นด้วยตัวพิมพ์ใหญ่ (Title Case):
// ใช้ Apache Commons Text (WordUtils)
import org.apache.commons.text.WordUtils;
String result = WordUtils.capitalizeFully(input_string);
// Java 8+ แบบ manual
String result = Arrays.stream(input_string.split(" "))
.map(w -> w.substring(0, 1).toUpperCase() + w.substring(1).toLowerCase())
.collect(Collectors.joining(" "));