บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการล้างข้อมูล (Clear) ใน StringBuffer StringBuffer เป็น peer class ของ String ที่ให้ฟังก์ชันคล้ายกันมาก String แทนลำดับตัวอักษรที่มีความยาวคงที่ ไม่สามารถเปลี่ยนแปลงได้ (Immutable) ในขณะที่ StringBuffer แทนลำดับตัวอักษรที่ขยายได้และเขียนได้ (Mutable)
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
This string buffer is defined as: Java Program
เอาต์พุทที่คาดหวัง:
The string buffer after clearing:
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศออบเจ็กต์ StringBuffer ชื่อ string_buffer ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - เรียกฟังก์ชันสำเร็จรูป .delete() ส่งค่า 0 และขนาดบัฟเฟอร์ เพื่อล้างบัฟเฟอร์ ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: ใช้ delete() ล้างบัฟเฟอร์
public class Buffer {
public static void main(String[] args) {
StringBuffer string_buffer = new StringBuffer();
string_buffer.append("Java");
string_buffer.append(" Program");
System.out.println("This string buffer is defined as: " + string_buffer);
string_buffer.delete(0, string_buffer.length());
System.out.println("The string buffer after clearing: " + string_buffer);
}
}
เอาต์พุท
This string buffer is defined as: Java Program The string buffer after clearing:
ตัวอย่างที่ 2: ใช้ setLength(0) ล้างบัฟเฟอร์
public class Buffer {
public static void main(String[] args) {
StringBuffer string_buffer = new StringBuffer();
string_buffer.append("Java");
string_buffer.append(" Program");
System.out.println("This string buffer is defined as: " + string_buffer);
string_buffer.setLength(0);
System.out.println("The string buffer after clearing: " + string_buffer);
}
}
เอาต์พุท
This string buffer is defined as: Java Program The string buffer after clearing:
เปรียบเทียบวิธีล้าง StringBuffer:
| เมธอด | คำอธิบาย | ประสิทธิภาพ |
|---|---|---|
| delete(0, length()) | ลบช่วง 0 ถึง length-1 | ดี |
| setLength(0) | ตั้งค่าความยาวเป็น 0 โดยตรง | ดีที่สุด (แค่เปลี่ยนตัวนับ) |
| new StringBuffer() | สร้างออบเจ็กต์ใหม่ ทิ้งอันเก่า | ใช้ GC มากกว่า |
StringBuilder vs StringBuffer: StringBuilder ไม่ thread-safe เร็วกว่า StringBuffer ใน single-threaded environment