Danh mục

XỬ LÝ CHUỖI phần 2

Số trang: 20      Loại file: pdf      Dung lượng: 230.12 KB      Lượt xem: 2      Lượt tải: 0    
Jamona

Hỗ trợ phí lưu trữ khi tải xuống: 19,000 VND Tải xuống file đầy đủ (20 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Việc so sánh bằng nhau giữa hai chuỗi là việc rất tự nhiên và thường được sử dụng. Tuy nhiên, trong một số ngôn ngữ, như VB.NET, không hỗ trợ nạp chồng toán tử.
Nội dung trích xuất từ tài liệu:
XỬ LÝ CHUỖI phần 2Việc so sánh bằng nhau giữa hai chuỗi là việc rất tự nhiên và thường được sử dụng.Tuynhiên, trong một số ngôn ngữ, như VB.NET, không hỗ trợ nạp chồng toán tử. Do đó đểchắc chắn chúng ta nên sử dụng phương thức Equals() là tốt nhất.Các đoạn chương trình tiếp theo của ví dụ 10.1 sử dụng toán tử chỉ mục ([]) để tìm raký tự xác định trong một chuỗi. Và dùng thuộc tính Length để lấy về chiều dài của toànbộ một chuỗi: Console.WriteLine(“\nChuoi S7 co chieu dai la : {0}”, s7.Length); Console.WriteLine(“Ky tu thu 3 cua chuoi S7 la : {0}”, s7[2] );Kết quả là:Chuoi S7 co chieu dai la : 8Ky tu thu 3 cua chuoi S7 la : cPhương thức EndsWith() hỏi xem một chuỗi có chứa một chuỗi con ở vị trí cuốicùng hay không. Do vậy, chúng ta có thể hỏi rằng chuỗi S3 có kết thúc bằng chuỗi“CNTT” hay chuỗi “Nam”: // Kiểm tra xem một chuỗi có kết thúc với một nhóm ký tự xác định hay không Console.WriteLine(“S3: {0}\n ket thuc voi chu CNTT ? : {1}\n”, s3, s3.EndsWith(“CNTT”)); Console.WriteLine(“S3: {0}\n ket thuc voi chu Nam ? : {1}\n”, s3, s3.EndsWith(“Nam”));Kết quả trả về là lần kiểm tra đầu tiên là sai do chuỗi S3 không kết thúc chữ “CNTT”,và lầnkiểm tra thứ hai là đúng: S3: Trung Tam Dao Tao CNTT Thanh pho Ho Chi Minh Viet Nam ket thuc voi chu CNTT ? : False S3: Trung Tam Dao Tao CNTT Thanh pho Ho Chi Minh Viet Nam ket thuc voi chu Minh ? : TruePhương thức IndexOf() chỉ ra vị trí của một con bên trong một chuỗi (nếu có). Vàphươngthức Insert() chèn một chuỗi con mới vào một bản sao chép của chuỗi ban đầu.Đoạn lệnh tiếp theo của ví dụ minh họa thực hiện việc xác định vị trí xuất hiện đầu tiêncủa chuỗi “CNTT” trong chuỗi S3: Console.WriteLine(“\nTim vi tri xuat hien dau tien cua chu CNTT ”); Console.WriteLine(“trong chuoi S3 là {0}\n”, s3.IndexOf(“CNTT”));Và kết quả tìm được là 18: Tim vi tri xuat hien dau tien cua chu CNTT trong chuoi S3 là 18Chúng ta có thể chèn vào chuỗi từ “nhan luc” và theo sau chuỗi này là một khoảngtrắng vào trong chuỗi ban đầu. Khi thực hiện thì phương thức trả về bản sao củachuỗi đã được chèn vào chuỗi con mới và được gán lại vào chuỗi S8: string s8 = s3.Insert(18, “nhan luc ”); Console.WriteLine(“ S8 : {0}\n”, s8);Kết quả đưa ra là: S8 : Trung Tam Dao Tao nhan luc CNTT Thanh pho Ho Chi Minh Viet NamCuối cùng, chúng ta có thể kết hợp một số các phép toán để thực hiện việc chèn nhưsau: string s9 = s3.Insert( s3.IndexOf( “CNTT” ) , “nhan luc ”); Console.WriteLine(“ S9 : {0}\n”, s9);Kết quả cuối cùng cũng tương tự như cách chèn bên trên: S9 : Trung Tam Dao Tao nhan luc CNTT Thanh pho Ho Chi Minh Viet NamTìm một chuỗi con Trong kiểu dữ liệu String có cung cấp phương thức Substring() để trích một chuỗicon từ chuỗi ban đầu. Cả hai phiên bản đều dùng một chỉ mục để xác định vị trí bắtđầu trích ra. Và một trong hai phiên bản dùng chỉ mục thứ hai làm vị trí kết thúc củachuỗi. Trong ví dụ 10.2 minh họa việc sử dụng phương thức Substring() của chuỗi. Ví dụ 10.2 : Sử dụng phương thức Substring().-----------------------------------------------------------------------------namespace Programming_CSharp{ using System; using System.Text; public class StringTester { static void Main() { // Khai báo các chuỗi để sử dụng string s1 = “Mot hai ba bon”; int ix; // lấy chỉ số của khoảng trắng cuối cùng ix = s1.LastIndexOf(“ ”); // lấy từ cuối cùng string s2 = s1.Substring( ix+1); // thiết lập lại chuỗi s1 từ vị trí 0 đến vị trí ix // do đó s1 có giá trị mới là mot hai ba s1 = s1.Substring(0, ix); // tìm chỉ số của khoảng trắng cuối cùng (sau hai) ix = s1.LastIndexOf(“ ”); // thiết lập s3 là chuỗi con bắt đầu từ vị trí ix // do đó s3 = “ba” string s3 = s1.Substring(ix+1); // thiết lập lại s1 bắt đầu từ vị trí 0 đến cuối vị trí ix // s1 = “mot hai” s1 = s1.Substring(0, ix); // ix chỉ đến khoảng trắng giữa “mot” va “hai” ix = s1.LastIndexOf(“ ”); // tạo ra s4 là chuỗi con bắt đầu từ sau vị trí ix, do // vậy có giá trị là “hai” string s4 = s1.Substring( ix+1); // thiết lập lại giá trị của s1 s1 = s1.Substring(0, ix); // lấy chỉ số của khoảng trắng cuối cùng, lúc này ix là –1 ix = s1.LastIndexOf(“ ”); // tạo ra chuỗi s5 bắt đầu từ chỉ số khoảng trắng, nhưng không có khoảng // trắng và ix là –1 nên chuỗi bắt đầu từ 0 string s5 = s1.Substring(ix +1); Console.WriteLine(“s2 : {0}\n s3 : {1}”, s2, s3); Console.WriteLine(“s4 : {0}\n s5 : {1}\n”, s4, s5); Console.WriteLine(“s1: {0}\n”, s1); }// end Main }// end class}// end namespace----------------------------------------------------------------------------- Kết quả:s2 : bons3 : ba s4: hai s5 :mot s1 :mot-----------------------------------------------------------------------------Ví dụ minh họa 10.2 trên không phải là giải pháp tốt để giải quyết vấn đề trích lấy cácký tự trong một chuỗi. Nhưng nó là cách gần đúng tốt nhất và minh họa hữu dụng cho kỹthuật này.Chia chuỗiMột giải pháp giải quyết hiệu quả hơn để minh họa cho ví dụ 10.2 là có thể sử dụngphương thức Split() của lớp string. Chức năng chính là phân tích một chuỗi ra thành cácchuỗi con.Để sử dụng Split(), chúng ta truyền vào một mảng các ký tự phân cách, các ký tự nàyđược dùng để chia các từ trong chuỗi. Và phương thức sẽ trả về một mảng những chuỗicon. Ví dụ 10.3 : Sử dụng phương thức Split().--------- ...

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