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
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().--------- ...
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ìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# XỬ LÝ CHUỖI phần 2Tài liệu liên quan:
-
52 trang 436 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 323 0 0 -
74 trang 305 0 0
-
96 trang 301 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 294 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 288 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 279 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 272 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 271 0 0