สตริงใน Java (Java Strings)
วันนี้เราจะมาเรียนรู้เกี่ยวกับสตริง (Strings) ใน Java กัน สตริงเป็นหนึ่งในประเภทข้อมูลที่ใช้บ่อยที่สุดในการเขียนโปรแกรม
สตริงคืออะไร?
สตริงคือลำดับของตัวอักษร ใน Java สตริงเป็นออบเจ็กต์ของคลาส String ไม่ใช่ประเภทข้อมูลพื้นฐาน (primitive type)
การสร้างสตริง
มีหลายวิธีในการสร้างสตริงใน Java:
// วิธีที่ 1: ใช้เครื่องหมายคำพูด
String ชื่อ = "สมชาย";
// วิธีที่ 2: ใช้คอนสตรักเตอร์ของคลาส String
String นามสกุล = new String("ใจดี");การเชื่อมต่อสตริง (String Concatenation)
เราสามารถเชื่อมต่อสตริงได้โดยใช้เครื่องหมาย +:
String ชื่อเต็ม = ชื่อ + " " + นามสกุล;
System.out.println(ชื่อเต็ม); // แสดง: สมชาย ใจดีวิธีการ (Methods) ที่ใช้บ่อยของสตริง
- length(): หาความยาวของสตริง
String ข้อความ = "สวัสดี";
System.out.println(ข้อความ.length()); // แสดง: 6- charAt(): หาตัวอักษรที่ตำแหน่งที่ระบุ
System.out.println(ข้อความ.charAt(0)); // แสดง: ส- substring(): ตัดสตริงย่อยจากสตริงหลัก
System.out.println(ข้อความ.substring(0, 3)); // แสดง: สวั- equals(): เปรียบเทียบสตริง
String ข้อความ1 = "สวัสดี";
String ข้อความ2 = "สวัสดี";
System.out.println(ข้อความ1.equals(ข้อความ2)); // แสดง: true- toLowerCase() และ toUpperCase(): แปลงเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่
String ข้อความ = "Hello";
System.out.println(ข้อความ.toLowerCase()); // แสดง: hello
System.out.println(ข้อความ.toUpperCase()); // แสดง: HELLO- trim(): ตัดช่องว่างหน้าและหลังสตริง
String ข้อความ = " สวัสดี ";
System.out.println(ข้อความ.trim()); // แสดง: สวัสดีการเปรียบเทียบสตริง
ในการเปรียบเทียบสตริง ควรใช้ equals() แทนการใช้ ==:
String str1 = "สวัสดี";
String str2 = "สวัสดี";
String str3 = new String("สวัสดี");
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
System.out.println(str1 == str2); // true (ไม่ควรใช้วิธีนี้)
System.out.println(str1 == str3); // false (ไม่ควรใช้วิธีนี้)สตริงไม่สามารถเปลี่ยนแปลงได้ (Immutable)
สตริงใน Java เป็น immutable นั่นคือ เมื่อสร้างแล้วไม่สามารถเปลี่ยนแปลงได้ การ “เปลี่ยนแปลง” สตริงจริงๆ แล้วคือการสร้างสตริงใหม่:
String ข้อความ = "สวัสดี";
ข้อความ = ข้อความ + " ชาวโลก"; // สร้างสตริงใหม่
System.out.println(ข้อความ); // แสดง: สวัสดี ชาวโลกStringBuilder
เมื่อต้องการเปลี่ยนแปลงสตริงบ่อยๆ ควรใช้ StringBuilder เพื่อประสิทธิภาพที่ดีกว่า:
StringBuilder sb = new StringBuilder("สวัสดี");
sb.append(" ชาวโลก");
sb.append("!");
System.out.println(sb.toString()); // แสดง: สวัสดี ชาวโลก!ตัวอย่างการใช้งานจริง
ลองมาดูตัวอย่างโปรแกรมที่ใช้สตริงในการจัดการชื่อกัน:
public class โปรแกรมจัดการชื่อ {
public static void main(String[] args) {
String ชื่อเต็ม = " สมชาย ใจดี ";
// ตัดช่องว่างและแยกชื่อกับนามสกุล
String[] ส่วนของชื่อ = ชื่อเต็ม.trim().split(" ");
String ชื่อ = ส่วนของชื่อ[0];
String นามสกุล = ส่วนของชื่อ[1];
// แสดงผล
System.out.println("ชื่อ: " + ชื่อ);
System.out.println("นามสกุล: " + นามสกุล);
System.out.println("อักษรย่อชื่อ: " + ชื่อ.charAt(0) + "." + นามสกุล.charAt(0) + ".");
System.out.println("ความยาวชื่อเต็ม: " + (ชื่อ.length() + นามสกุล.length()));
// สร้างอีเมล
String อีเมล = (ชื่อ.toLowerCase() + "." + นามสกุล.toLowerCase() + "@example.com");
System.out.println("อีเมล: " + อีเมล);
}
}สรุป
สตริงเป็นส่วนสำคัญในการเขียนโปรแกรม Java ใช้ในการจัดการข้อความต่างๆ การเข้าใจวิธีการทำงานและการใช้งานสตริงอย่างถูกต้องจะช่วยให้คุณเขียนโปรแกรมได้อย่างมีประสิทธิภาพมากขึ้น