62
Chương 2: Thao tác dữ liệu
•
Nếu bạn thiết lập giá trị
Capacity
nhỏ hơn giá trị
Length
, thuộc tính
Capacity
sẽ ném
ngoại lệ
System.ArgumentOutOfRangeException
.
•
Nếu bạn thiết lập giá trị
Length
nhỏ hơn kích thước của chuỗi hiện có trong bộ đệm,
chuỗi sẽ bị cắt bớt phần lớn hơn.
•
Nếu bạn thiết lập giá trị
Length
lớn hơn kích thước của chuỗi, bộ đệm sẽ được "lấp"
thêm các khoảng trắng cho bằng với
Length
. Việc thiết lập giá trị
Length
lớn hơn giá trị
Capacity
sẽ tự động điều chỉnh
Capacity
cho bằng với
Length
.
Phương thức
ReverseString
dưới đây minh họa cách sử dụng lớp
StringBuilder
để đảo một
chuỗi. Nếu không sử dụng lớp
StringBuilder
để thực hiện thao tác này thì sẽ tốn chi phí đáng
kể, đặc biệt khi chuỗi nguồn dài. Việc khởi tạo
StringBuilder
với kích thước bằng chuỗi
nguồn bảo đảm không cần phải cấp phát lại bộ đệm trong quá trình đảo chuỗi.
public static string ReverseString(string str) {
// Kiểm tra các trường hợp không cần đảo chuỗi.
if (str == null || str.Length == 1) {
return str;
}
// Tạo một StringBuilder với sức chứa cần thiết.
System.Text.StringBuilder revStr =
new System.Text.StringBuilder(str.Length);
// Duyệt ngược chuỗi nguồn từng ký tự một
// và thêm từng ký tự đọc được vào StringBuilder.
for (int count = str.Length-1; count > -1; count--) {
revStr.Append(str[count]);
}
// Trả về chuỗi đã được đảo.
return revStr.ToString();
}
2.
2.
Mã hóa chu i b ng các ki u mã hóa ký t
ỗ ằ
ể
ự
Mã hóa chu i b ng các ki u mã hóa ký t
ỗ ằ
ể
ự
Bạn cần trao đổi dữ liệu dạng ký tự với các hệ thống sử dụng kiểu mã hóa khác
với UTF-16 (kiểu mã hóa này được sử dụng bởi CRL).