StringBuilder trong java với ví dụ cụ thể

Trong khi String đại diện cho một chuỗi ký tự immutable thì StringBuilder cũng giống như StringBuffer đại diện cho chuỗi ký tự có thể thay đổi được sau khi khởi tạo.

Điểm khác biệt lớn nhất giữa StringBuffer và StringBuilder là cơ chế đồng bộ hóa. Trong khi StringBuffer đảm bảo cơ chế đồng bộ hóa còn StringBuilder thì không. Do đó StringBuilder được thiết kế để thay thế cho StringBuffer khi thực hiện trong môi trường single thread.

StringBuider được khuyến khích sử dụng nhiều hơn StringBuffer vì nó cho tốc độ xử lý nhanh hơn. 

StringBuilder không toàn khi sử dụng trong môi trường multiple thread, nếu bạn cần đảm bảo về mặt đồng bộ hóa thì nên sử dụng StringBuffer.

Còn về các method của StringBuider và StringBuffer hầu hết là giống nhau về hàm và cơ chế thực hiện.

Constructor trong StringBuider

  • StringBuilder(): Khởi tạo string builder rỗng và có sức chứa 16 ký tự.
  • StringBuilder(int capacity): Khởi tạo string builder rỗng có sức chứa capacity.
  • StringBuilder(CharSequence seq): Khởi tạo string builder chứa chuỗi ký tự seq.
  • StringBuilder(String str): Khởi tạo string builder chứa chuỗi str.
public class Main {

    public static void main(String[] args) {
        // StringBuider()
        StringBuilder str = new StringBuilder();
        str.append("shareprogramming.net");
        System.out.println(str);

        // StringBuider(int capacity)
        StringBuilder str1 = new StringBuilder(100);
        str1.append("shareprogramming.net - 1");
        System.out.println(str + " - " + str1.capacity());

        // StringBuider(CharSequence seq)
        StringBuilder str2 = new StringBuilder("shareprogramming.net - 2");
        System.out.println(str2);

        // StringBuider(String str)
        String tmp = "shareprogramming.net - 3";
        StringBuilder str3 = new StringBuilder(tmp);
        System.out.println(str3);
    }
}

Output:

shareprogramming.net
shareprogramming.net – 100
shareprogramming.net – 2
shareprogramming.net – 3

StringBuilder methods:

  1. StringBuilder append(X x): Nối chuỗi x vào cuối chuỗi hiện tại.
  2. StringBuilder appendCodePoint(int codePoint): Nối ký tự dưới dạng mã code vào cuối chuỗi.
  3. int capacity(): Trả về sức chứa của string builder hiện tại.
  4. char charAt(int index): Trả về ký tự tại vị trí index của string builder.
  5. int codePointAt(int index): Trả về mã code của ký tự tại vị trí index.
  6. int codePointBefore(int index):Trả về mã code của ký tự tại vị trí index -1.
  7. StringBuilder delete(int start, int end): Xóa chuỗi con trong khoảng start đến end của string builder.
  8. StringBuilder deleteCharAt(int index): Xóa ký tự tại vị trí index.
  9. void ensureCapacity(int minimumCapacity): Đảm bảo rằng sức chứa của string builder hiện tại ít nhất là minimumCapacity.
  10. int indexOf(): Trả về vị trí xuất hiện đầu tiên của một chuỗi con, ký tự, số int, long etc.
  11. StringBuilder insert(int offset, Object b): Thêm object b tại vị trí offset(object có thể là chuỗi, int, double etc).
  12. int lastIndexOf(): Trả về vị trí xuất hiện cuối cùng của ký tự, chuỗi con, số int, etc.
  13. int length():Trả về số lượng ký tự của string builder hiện tại.
  14. StringBuilder replace(int start, int end, String str): Thay thế chuỗi str cho chuỗi con từ start đến end của string builder.
  15. StringBuilder reverse(): Đảo ngược toàn bộ ký tự của string builder.
  16. void setCharAt(int index, char ch):Thay thế ký tự tại vị trí index bằng ký tự ch.
  17. void setLength(int newLength): Điều chỉnh chiều dài của string builder. Nếu số lượng ký tự hiện tại của string builder
  18. CharSequence subSequence(int start, int end): Trả về chuỗi ký tự từ start đến end.
  19. String substring(int start): Trả về chuỗi con từ start đến cuối string builder.
  20. String substring(int start, int end): Trả về chuỗi con từ start đến end.
  21. String toString(): Trả về chuỗi mô tả data của string builder.
  22. void trimToSize(): Giảm sức chứa dư thừa của string builder.

Code example:

// File Main.java
public class Main {

    public static void main(String[] args) {

        StringBuilder str = new StringBuilder("ABCDEF");

        System.out.println(str.toString());

        StringBuilder reverseStr = str.reverse();


        System.out.println("Reverse String = "
                + reverseStr.toString());

        str.appendCodePoint(44);

        System.out.println("Modified StringBuilder = " + str);

        int capacity = str.capacity();

        System.out.println("StringBuilder = " + str);
        System.out.println("Capacity of StringBuilder = " + capacity);
    }

}

Output:

ABCDEF
Reverse String = FEDCBA
Modified StringBuilder = FEDCBA,
StringBuilder = FEDCBA,
Capacity of StringBuilder = 22

Nguồn tham khảo

https://www.geeksforgeeks.org/stringbuilder-class-in-java-with-examples/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x