Danh mục

C# và các lớp cơ sở Xử lý chuỗi – Phần 2

Số trang: 14      Loại file: pdf      Dung lượng: 125.61 KB      Lượt xem: 16      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Các thành viên của StringBuilder Chúng ta đã minh hoạ 1 hàm dựng của StringBuilder, mà lấy thông số khởi tạo là chuỗi và dung lượng.cũng có một vài cái khác , trong số chúng, ta có thể cung cấp chỉ 1 chuỗi : StringBuilder sb = new StringBuilder("Hello"); hoặc chỉ cung cấp dung luợng , chuỗi trống: StringBuilder sb = new StringBuilder(20); Ngoại trừ 2 thuộc tính trên ta còn có thuộc tính chỉ đọc MaxCapacity chỉ định giới hạn mà 1 thể hiện của StringBuilder cho phép .mặc định , số này là int.MaxValue ( khoảng 2...
Nội dung trích xuất từ tài liệu:
C# và các lớp cơ sở Xử lý chuỗi – Phần 2 C# và các lớp cơ sở Xử lý chuỗi – Phần 2 Các thành viên của StringBuilder Chúng ta đã minh hoạ 1 hàm dựng của StringBuilder, mà lấy thông số khởi tạo là chuỗi và dung lượng.cũng có một vài cái khác , trong số chúng, ta có thể cung cấp chỉ 1 chuỗi : StringBuilder sb = new StringBuilder(Hello); hoặc chỉ cung cấp dung luợng , chuỗi trống: StringBuilder sb = new StringBuilder(20); Ngoại trừ 2 thuộc tính trên ta còn có thuộc tính chỉ đọc MaxCapacity chỉ định giới hạn mà 1 thể hiện của StringBuilder cho phép .mặc định , số này là int.MaxValue ( khoảng 2 tỷ). // dung lượng khởi tạo là 100 nhưng lớn nhất là 500 // do đó StringBuilder không thể phát triển hơn 500 kí tự được. // chúng sẽ tung biệt lệ nếu ta cố làm điều đó. StringBuilder sb = new StringBuilder(Hello, 100, 500); StringBuilder sb = new StringBuilder(100, 500); Ta có thể thiết lập dung lượng ở bất cứ đâu .nếu dung lượng thiêt lập nhỏ hơn chuỗi hiện hành hoặc lớn hơn độ dài lớn nhất thì biệt lệ sẽ được tung ra. StringBuilder sb = new StringBuilder(Hello); sb.Capacity = 100; Phương thức chính StringBuilder bao gồm : Append() : thêm 1 chuỗi vào chuỗi đương thời AppendFormat() :thêm 1 chuỗi mà được trình bày từ các chỉ định định dạng Insert() :chèn 1 chuỗi con vào chuỗi đương thời Remove() :bỏ các kí tự từ chuỗi đương thời Replace() :thay thế kí tự này bằng kí tự khác hoặc chuỗi con này bằng chuỗi con khác trong chuỗi đương thời ToString() :trả về chuỗi đương thời ép thành 1 đối tượng System.Object ( nạp chồn từ System.Object) Vào lúc viết , không thể ép kiểu ( tường minh hay không tưòng minh) từ StringBuilder sang String. nếu ta muốn xuất nội dung của StringBuilder như là 1 String , cách duy nhất để làm là dùng phương thức Tostring() Định dạng Chuỗi Nếu ta muốn những lớp mà ta viết thân thiện với người sử dụng , thì chúng cần để trình bày chuỗi theo bất cứ cách nào mà người sử dụng muốn dùng.Thời gian chạy .NET định nghĩa 1 cách chuẩn để làm : dùng 1 interface hoặc IFormatable.biểu diễn làm thế nào để thêm những đặc tính quan trọng đến lớp của ta và những cấu trúc là chủ đề của phần này. ta thường chỉ định định dạng của biến đ ược trình bày khi gọi Console.Writeline. do đó ta sẽ lấy phương thức này làm ví dụ, mặc dù hầu hết những điều ta sắp học có thể ứng dụng trong bất cứ t ình huống nào mà ta muốn định dạng chuỗi Ví dụ: double d = 13.45; int i = 45; Console.WriteLine(The double is {0,10:E} and the int contains {1}, d, i); Chuỗi định dạng tự nó bao gồm hầu hết văn bản được trình bày,nhưng bất cứ ở đâu có biến được định dạng , chỉ mục của nó trong danh sách thông số trong dấu ngoặc.có thể là thông tin khác bên trong dấu ngoặc về việc định dạng của mục đó : số kí tự được giữ bởi sự trình bày của mục có thể xuất hiện, thông tin này sẽ có dấu phảy đứng trước.một số âm chỉ định rằng mục đó đưọc canh trái,trong khi 1 số dương chỉ định mục đó được canh phải. nếu mục đó giữ nhiều kí tự hơn được yêu cầu, nó vẫn xuất hiện đầy đủ. Một chỉ định định dạng cũng có thể xuất hiện.điều này sẽ được đặt trước bởi dấu hai chấm và chỉ định cách ta muốn mục được định dạng. ví dụ ta muốn định dạng số như kiểu tiền tệ hoặc trình bày theo ký hiệu khoa học ? Áp dụng đến Ý nghĩa Ví d ụ Đặc tả C numeric types locale-specific $4834.50 (USA)£4834.50 monetary value (UK) D types general integer 4834 integer only E numeric types scientific notation 4.834E+003 F numeric types fixed point decimal 4384.50 G numeric types general number 4384.5 Áp dụng đến Ý nghĩa Ví d ụ Đặc tả N numeric types usual locale 4,384.50 (UK/USA)4 specific format for 384,50 (continental Europe) numbers P numeric types 432,000.00% Percentage notation X integer types hexadecimal 1120 (NB. If you want to only format display 0x1120, you'd need to write out the 0x separately) Làm thế nào chuỗi được định dạng Xem ví dụ sau: Console.WriteLine(The double is {0,10:E} and the int contains {1}, d, i); Thực vậy, Console.Writeline() chỉ việc kiểm soát toàn bộ tập thông số bằng cách chuyển đến phương thức static, String.Format()- cũng phương thức này được gọi nếu ta muốn định dạng các giá trị trong chuỗi theo các mục đích khác , như là trình bày trong textbox.Để làm rõ những gì mã nguồn thực sự thực thi phương thức này là gì ,ta sẽ xem xét việc thi hành phương thức oveload với 3 thông số của phương thức Writeline() như sau : : // giống như thực thi Console.Writeline() public void WriteLine(string format, object arg0, object arg1) { Console.WriteLine(string.Format(format, arg0, arg1)); } Overload 1 thông số của phương thức này, đơn giản viết nội dung của chuỗi được trình bày,không làm bất cứ định dạng gì trên nó. String.format() cần xây dựng chuỗi cuối bằng cách thay thế mỗi phần đặc tả định dạng bằng việc trình bày chuỗi thích hợp của đối tượng tương ứng.tuy nhiên như đã biết , chính xác trong tình huống này ta cần thể hiện Stringbuilder hơn là thể hiện string. trong ví dụ ta đang xét , 1 thể hiện StringBuilder sẽ được tạo ra và khởi tạo với phần đầu là chuỗi The double is . phương thức StringBuilder.AppendFormat() sẽ được gọi, truyền phần đặc tả định dạng dầu tiên , {0,10:E} ,và đối tượng kết hợp kiểu double này sẽ được thêm vào chuỗi đang được xây dựng, quy trình này sẽ tiếp tục với việc gọi nhiều lần StringBuilder.Append() và StringBuilder.AppendFormat() cho đến ...

Tài liệu được xem nhiều: