Cách khai báo chuỗi: để khai báo chuỗi theo kiểu này ta thực hiện như sau: string Tênchuỗi;
Vắ dụ:
string hoTen, queQuan; string s;
Như chúng ta ựã biết chuỗi là một kiểu dữ liệu tham chiếu, một chuỗi chẳng qua là một ựối tượng thuộc lớp System.String. Với khai báo trên ta mới chỉ thu ựược tên của ựối tượng chuỗi ựặt trong stack còn nội dung cấp phát cho nó thì chưa có. để tạo nội dung cho chuỗi ta thực hiện theo cách như sau:
Tạo nội dung cho chuỗi
string hoTen= ỘLe Nhat MinhỢ; string donViCongTac;
Ta thấy rằng khi khai báo hai chuỗi hoTen và donViCongTac thì biến xâu ựược cấp phát trong Stack, còn nội dung thực sự của chuỗi ựược cấp phát trong Heap. Trong vắ dụ trên thì ngay từ ựầu xâu hoTen ựựơc cấp vùng nhớ với nội dung là ỘNguyen Huu DongỢ trong Heap, còn xâu donViCongTac thì chỉ có biến xâu trong Stack và phần nội dung thì chưa có.
Giả sử sau ựó ta gán cho xâu donViCongTac một xâu là ỢNha treỢ. Stack
Heap hoTen
donViCongTac
donViCongTac=ỢNha treỢ
Sau khi gán cho xâu donViCongTac xâu ỘNha treỢ lúc ựó ta có
Như vậy ta thấy rằng chuỗi là một kiểu dữ liệu tham chiếu với biến chuỗi thì ựặt trong Stack và nội dung thực sự của chuỗi thì ựặt trong Heap.
Chuỗi có thể chứa các ký tự ựặc biệt: \t , \n, \b ,.... Vắ dụ:
string diaChi= ỘLe Nhat Minh\nNha TreỢ Khi hiển thị ta ựược nội dung sau:
Le Nhat Minh Nha Tre
Chuỗi cũng có thể ựược tạo bằng cách sử dụng chuỗi cố ựịnh hay nguyên văn (verbatim), tức là các ký tự trong chuỗi ựược giữ nguyên không thay ựổị Chuỗi này ựược bắt ựầu với biểu tượng @. Biểu tượng này bảo với hàm khởi dựng của lớp String rằng chuỗi theo sau là nguyên văn, thậm chắ nó chứa nhiều dòng hoặc bao gồm những ký tự escapẹ...
Vắ dụ:
Nếu ta thực hiện câu lệnh gán sau sẽ bị lỗi: string diaChi=ỢLe Nhat Minh
Nha TreỢ;
Khi ựó ta có thể sử dụng chuỗi nguyên văn như sau: string diaChi=@ỢLe Nhat Minh
Nha TreỢ;
Khi hiển thị ta thu ựược nội dung sau: Le Nhat Minh
Nha Tre
Cách truy nhập vào các phần tử của xâu Stack Heap hoTen donViCongTac L e N h a T M i n h N h a t r e
Stack Heap hoTen1 Lo Lao Lo Mang A Dong hoTen2 Stack Heap hoTen1 Lo Lao Lo Mang A Dong hoTen2
để truy nhập vào các phần tử của xâu, chúng ta thực hiện theo nguyên tắc: TênXau[chỉ số] với chỉ số ∈ [0..TênXaụLength-1]
Thao tác trên chuỗi
Lấy tổng chuỗi: Tổng của hai hay nhiều chuỗi kết quả cho ta là một chuỗị
string firstName= ỘMinhỢ; string lastName=ỢLe NhatỢ;
string fullName= lastName + Ộ Ộ +firstName;
Khi ựó chuỗi fullName có nội dung là: Le Nhat Minh Gán chuỗi
string hoTen1=ỢLo lao LoỢ; string hoTen2=ỢMang A DongỢ;
Nếu ta thực hiện:
hoTen1=hoTen2; Lúc này ta có:
Ta thấy rằng sau khi gán xâu hoTen2 cho xâu hoTen1 thì hai xâu hoTen1 và hoTen2 ựều trỏ vào cùng một vùng nhớ. Tức là hai xâu hoTen1 và hoTen2 là có vai trò như nhaụ
Chúng ta không lên so sánh trực tiếp hai xâu với nhau, hay gán trực tiếp hai xâu cho nhaụv.v... mà ta sẽ sử dụng các hàm trong lớp lớp string. Lớp string cung cấp rất nhiều các hàm ựể so sánh, tìm kiếm và thao tác trên xâu, các hàm này ựược trình bày trong bảng sau:
System.String
Empty() Trường public static thể hiện một chuỗi rỗng. Compare() Phương thức public static ựể so sánh hai chuỗị CompareOrdin
al()
Phương thức public static ựể so sánh hai chuỗi không quan tâm ựến thứ tự
Concat() Phương thức public static ựể tạo chuỗi mới từ một hay nhiều chuỗi Copy() Phương thức public static tạo ra một chuỗi mới bằng sao từ chuỗi
khác.
Equal() Phương thức public static kiểm tra xem hai chuỗi có cùng giá trị hay không.
Format() Phương thức public static ựịnh dạng một chuỗi dùng ký tự lệnh ựịnh dạng xác ựịnh.
Intern() Phương thức public static trả về tham chiếu ựến thể hiện của chuỗị IsInterned() Phương thức public static trả về tham chiếu của chuỗi
Join() Phương thức public static kết nối các chuỗi xác ựịnh giữa mỗi thành phần của mảng chuỗị
Chars() Indexer của chuỗị Length() Chiều dài của chuỗị Clone() Trả về chuỗị
CompareTo() So sánh hai chuỗị
CopyTo() Sao chép một số các ký tự xác ựịnh ựến một mảng ký tự Unicodẹ EndsWidth() Chỉ ra vị trắ của chuỗi xác ựịnh phù hợp với chuỗi ựưa rạ
Insert() Trả về chuỗi mới ựã ựược chèn một chuỗi xác ựịnh.
LastIndexOf() Chỉ ra vị trắ xuất hiện cuối cùng của một chuỗi xác ựịnh trong chuỗị PadLeft() Canh lề phải những ký tự trong chuỗi, chèn vào bên trái khoảng
trắng hay các ký tự xác ựịnh.
PadRight() Canh lề trái những ký tự trong chuỗi, chèn vào bên phải khoảng trắng hay các ký tự xác ựịnh.
Remove() Xóa ựi một số ký tự xác ựịnh.
Split() Trả về chuỗi ựược phân ựịnh bởi những ký tự xác ựịnh trong chuỗị StartWidth() Xem chuỗi có bắt ựầu bằng một số ký tự xác ựịnh hay không. SubString() Lấy một chuỗi con.
ToCharArray() Sao chép những ký tự từ một chuỗi ựến mảng ký tự. ToLower() Trả về bản sao của chuỗi ở kiểu chữ thường.
ToUpper() Trả về bản sao của chuỗi ở kiểu chữ hoạ
Trim() Xóa bỏ tất cả sự xuất hiện của tập hợp ký tự trống ở ựầu và cuối xâu TrimEnd() Xóa như Trim nhưng ở vị trắ cuốị
TrimStart() Xóa như Trim nhưng ở vị trắ ựầụ