Thao tác với lớp StringBuilder trong lập trình C#

Lớp StringBuilder giúp bạn thao tác nhanh các chuỗi với ít tổn hao bộ nhớ hơn so với lớp String ( Fixed size). Trong bài viết này, mình sẽ trình bày những thao tác cơ bản với lớp StringBuilder, với những thao tác này, bạn có thể "đủ xài" trong các ứng dụng của mình rồi.
Do StringBuilder là 1 lớp, nên ta cần tạo 1 thể hiện của lớp này bằng 1 trong các cách sau:

StringBuilder sb = new StringBuilder(); // bộ khởi tạo với chuỗi sb rỗng
StringBuilder sb = new StringBuilder(int )
//Ví dụ:
StringBuilder sb = new StringBuilder(26); // sb rỗng, có chiều dài là 26

StringBuilder sb = new StringBuilder()
//Ví dụ:
StringBuilder sb = new StringBuilder("Hello world"); // sb = "Hello world"

StringBuilder sb = new StringBuilder(,)
//Ví dụ:
StringBuilder sb = new StringBuilder("Hello world",100);
// sb = "Hello world", và nó có chiều dài bằng 100 (trong trường hợp này ta vẫn chưa xài hết dung lượng của nó)
- sb.Insert(,"chuỗi") : chèn 1 chuỗi bất kỳ bắt đầu từ chỉ mục trong chuỗi sb
- sb.Remove(,)
- sb.Replace(,)
Ví dụ :
StringBuilder sb = new StringBuilder("Con kien bo tren lung con bo");
sb.Insert(12,"nhanh ");
//Con kien bo nhanh tren lung con bo
sb.Remove(23,5);
//Con kien bo nhanh tren con bo
sb.Replace("con bo","con trau");
//Con kien bo nhanh tren con trau
sb.AppendFormat(" voi van toc {0} m/s",1);
//Con kien bo nhanh tren con trau voi van toc 1 m/s
Bây giờ, nếu bạn muốn thêm một dấu phẩy sau từ "kien", trước tiên bạn phải tìm ra vị trí của từ này rồi mới chèn dấu phẩy sau từ này. Hàm IndexOf() rất tiện lợi để làm việc này, nhưng rất tiếc là StringBuilder không có hàm IndexOf(). Bạn phải chọn giải pháp là sử dụng ToString() để lấy một bản sao của chuỗi từ StringBuilder, rồi sử dụng IndexOf() để tìm ra vị trí của từ "kien" rồi sau đó sử dụng phương thức Insert() của StringBuilder để chèn dấu phẩy nơi bạn muốn trên chuỗi nguyên thủy. Một khi xong, bạn trích ra chuỗi cuối cùng từ StringBuilder thông qua phương thức ToString()
Ví dụ:
//sb = "Con kien bo nhanh tren con trau"
 vitri = sb.ToString().IndexOf("kien");
 if (vitri > 0)
     // chèn dấu phẩy ở vị trí tìm thấy + chiều dài của chuỗi con "kien"
    sb.Insert(vitri + "kien".Length, ",");

Không có nhận xét nào :

Đăng nhận xét