Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java ล้างข้อมูลใน StringBuffer


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการล้างข้อมูล (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