Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex p3

5 8 0
Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex p3

Đang tải... (xem toàn văn)

Thông tin tài liệu

Hai chuỗi đầu s1 và s2 được khai báo chuỗi ký tự bình thường, còn chuỗi thứ ba được khai báo là chuỗi nguyên văn (verbatim string) bằng cách sử dụng ký hiệu @ trước chuỗi. Chương trình bắt đầu bằng việc so sánh hai chuỗi s1 và s2. Phương thức Compare() là phương thức tĩnh của lớp string, và phương thức này đã được nạp chồng. Phiên bản đầu tiên của phương thức nạp chồng này là lấy hai chuỗi và so sánh chúng với nhau:...

Ngơn Ngữ Lập Trình C# string s3 = @“Trung Tam Dao Tao CNTT Thanh Ho Chi Minh Viet Nam”; Hai chuỗi đầu s1 s2 khai báo chuỗi ký tự bình thường, cịn chuỗi thứ ba khai báo chuỗi nguyên văn (verbatim string) cách sử dụng ký hiệu @ trước chuỗi Chương trình bắt đầu việc so sánh hai chuỗi s1 s2 Phương thức Compare() phương thức tĩnh lớp string, phương thức nạp chồng Phiên phương thức nạp chồng lấy hai chuỗi so sánh chúng với nhau: // So sánh hai chuỗi với có phân biệt chữ thường chữ hoa result = string.Compare( s1 ,s2); Console.WriteLine(“So sanh hai chuoi s1: {0} s2: {1} ket qua: {2} \n”, s1 ,s2 ,result); Ở việc so sánh có phân biệt chữ thường chữ hoa, phương thức trả giá trị khác phụ thuộc vào kết so sánh:  Một số âm chuỗi nhỏ chuỗi thứ hai  Giá trị hai chuỗi  Một số dương chuỗi thứ lớn chuỗi thứ hai Trong trường hợp so sánh đưa kết chuỗi s1 nhỏ chuỗi s2 Trong Unicode ASCII thứ tự ký tự thường nhỏ thứ tự ký tự hoa: So sanh hai chuoi S1: abcd S2: ABCD ket qua: -1 Cách so sánh thứ hai dùng phiên nạp chồng Compare() lấy ba tham số Tham số Boolean định bỏ qua hay không bỏ qua việc so sánh phân biệt chữ thường chữ hoa Tham số bỏ qua Nếu giá trị tham số true việc so sánh bỏ qua phân biệt chữ thường chữ hoa Việc so sánh sau không quan tâm đến kiểu loại chữ: // Tham số thứ ba true bỏ qua kiểm tra ký tự thường – hoa result = string Compare(s1, s2, true); Console.WriteLine(“Khong phan biet chu thuong va hoa\n”); Console.WriteLine(“S1: {0} , S2: {1}, ket qua : {2}\n”, s1, s2, result); Lúc việc so sánh hoàn toàn giống kết trả giá trị 0: Khong phan biet chu thuong va hoa S1: abcd , S2: ABCD, ket qua : Ví dụ minh họa 10.1 tiếp tục với việc nối chuỗi lại với Ở sử dụng hai cách để nối liền hai chuỗi Chúng ta sử dụng phương thức Concat() phương thức public static string: string s4 = string.Concat(s1, s2); Hay cách khác đơn giản việc sử dụng toán tử nối hai chuỗi (+): string s5 = s1 + s2; Trong hai trường hợp kết nối hai chuỗi hồn tồn thành cơng sau: 283 Xử Lý Chuỗi Ngơn Ngữ Lập Trình C# Chuoi S4 noi tu chuoi S1 va S2: abcdABCD Chuoi S5 duoc noi tu chuoi S1 + S2: abcdABCD Tương tự vậy, việc tạo chuỗi thiết lập hai cách Đầu tiên sử dụng phương thức static Copy() sau: string s6 = string.Copy(s5); Hoặc thuận tiện sử dụng phương thức nạp chồng tốn tử (=) thông qua việc chép ngầm định: string s7 = s6; Kết hai cách tạo hoàn toàn nhau: S6 duoc chep tu S5: abcdABCD S7 = S6: abcdABCD Lớp String NET cung cấp ba cách để kiểm tra hai chuỗi Đầu tiên sử dụng phương thức nạp chồng Equals() để kiểm tra trực tiếp S6 có S7 hay khơng: Console.WriteLine(“S6.Equals(S7) ?: {0}”, S6.Equals(S7)); Kỹ thuật so sánh thứ hai truyền hai chuỗi vào phương thức Equals() string: Console.WriteLine(“Equals(S6, s7) ?: {0}”, string.Equals(S6, S7)); Và phương pháp cuối sử dụng nạp chồng toán tử so sánh (=) String: Console.WriteLine(“S6 == S7 ?: {0}”, s6 == s7); Trong ba trường hợp kết trả giá trị Boolean, ta có kết sau: S6.Equals(S7) ?: True Equals(S6, s7) ?: True S6 == S7 ?: True Việc so sánh hai chuỗi việc tự nhiên thường sử dụng Tuy nhiên, số ngôn ngữ, VB.NET, khơng hỗ trợ nạp chồng tốn tử Do để chắn nên sử dụng phương thức Equals() tốt Các đoạn chương trình ví dụ 10.1 sử dụng tốn tử mục ([]) để tìm ký tự xác định chuỗi Và dùng thuộc tính Length để lấy chiều dài toàn chuỗi: Console.WriteLine(“\nChuoi S7 co chieu dai la : {0}”, s7.Length); Console.WriteLine(“Ky tu thu cua chuoi S7 la : {0}”, s7[2] ); Kết là: Chuoi S7 co chieu dai la : Ky tu thu cua chuoi S7 la : c Phương thức EndsWith() hỏi xem chuỗi có chứa chuỗi vị trí cuối hay khơng Do vậy, hỏi chuỗi S3 có kết thúc chuỗi “CNTT” hay chuỗi “Nam”: // Kiểm tra xem chuỗi có kết thúc với nhóm ký tự xác định hay không 284 Xử Lý Chuỗi Ngôn Ngữ Lập Trình C# 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 trả lần kiểm tra sai chuỗi S3 không kết thúc chữ “CNTT”, lần kiểm tra thứ hai đúng: S3: Trung Tam Dao Tao CNTT Thanh Ho Chi Minh Viet Nam ket thuc voi chu CNTT ? : False S3: Trung Tam Dao Tao CNTT Thanh Ho Chi Minh Viet Nam ket thuc voi chu Minh ? : True Phương thức IndexOf() vị trí bên chuỗi (nếu có) Và phương thức Insert() chèn chuỗi vào chép chuỗi ban đầu Đoạn lệnh ví dụ minh họa thực việc xác định vị trí xuất chuỗi “CNTT” chuỗi S3: Console.WriteLine(“\nTim vi tri xuat hien dau tien cua chu CNTT ”); Console.WriteLine(“trong chuoi S3 {0}\n”, s3.IndexOf(“CNTT”)); Và kết tìm 18: Tim vi tri xuat hien dau tien cua chu CNTT chuoi S3 18 Chúng ta chèn vào chuỗi từ “nhan luc” theo sau chuỗi khoảng trắng vào chuỗi ban đầu Khi thực phương thức trả chuỗi chèn vào chuỗi gán lại vào chuỗi S8: string s8 = s3.Insert(18, “nhan luc ”); Console.WriteLine(“ S8 : {0}\n”, s8); Kết đưa là: S8 : Trung Tam Dao Tao nhan luc CNTT Thanh Ho Chi Minh Viet Nam Cuối cùng, kết hợp số phép toán để thực việc chèn sau: string s9 = s3.Insert( s3.IndexOf( “CNTT” ) , “nhan luc ”); Console.WriteLine(“ S9 : {0}\n”, s9); Kết cuối tương tự cách chèn bên trên: S9 : Trung Tam Dao Tao nhan luc CNTT Thanh Ho Chi Minh Viet Nam Tìm chuỗi 285 Xử Lý Chuỗi Ngơn Ngữ Lập Trình C# Trong kiểu liệu String có cung cấp phương thức Substring() để trích chuỗi từ chuỗi ban đầu Cả hai phiên dùng mục để xác định vị trí bắt đầu trích Và hai phiên dùng mục thứ hai làm vị trí kết thúc chuỗi Trong ví dụ 10.2 minh họa việc sử dụng phương thức Substring() 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 chuỗi để sử dụng string s1 = “Mot hai ba bon”; int ix; // lấy số khoảng trắng cuối ix = s1.LastIndexOf(“ ”); // lấy từ cuối string s2 = s1.Substring( ix+1); // thiết lập lại chuỗi s1 từ vị trí đến vị trí ix // s1 có giá trị mot hai ba s1 = s1.Substring(0, ix); // tìm số khoảng trắng cuối (sau hai) ix = s1.LastIndexOf(“ ”); // thiết lập s3 chuỗi vị trí ix // s3 = “ba” string s3 = s1.Substring(ix+1); // thiết lập lại s1 vị trí đến cuối vị trí ix // s1 = “mot hai” s1 = s1.Substring(0, ix); // ix đến khoảng trắng “mot” va “hai” ix = s1.LastIndexOf(“ ”); // tạo s4 chuỗi sau vị trí ix, // có giá trị “hai” string s4 = s1.Substring( ix+1); // thiết lập lại giá trị s1 286 Xử Lý Chuỗi Ngơn Ngữ Lập Trình C# s1 = s1.Substring(0, ix); // lấy số khoảng trắng cuối cùng, lúc ix –1 ix = s1.LastIndexOf(“ ”); // tạo chuỗi s5 số khoảng trắng, khơng có khoảng // trắng ix –1 nên chuỗi 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 : bon s3 : ba s4 : hai s5 : mot s1 : mot Ví dụ minh họa 10.2 giải pháp tốt để giải vấn đề trích lấy ký tự chuỗi Nhưng cách gần tốt minh họa hữu dụng cho kỹ thuật Chia chuỗi Một giải pháp giải hiệu để minh họa cho ví dụ 10.2 sử dụng phương thức Split() lớp string Chức phân tích chuỗi thành chuỗi Để sử dụng Split(), truyền vào mảng ký tự phân cách, ký tự dùng để chia từ chuỗi Và phương thức trả mảng chuỗi  Ví dụ 10.3 : Sử dụng phương thức Split() namespace Programming_CSharp { using System; using System.Text; public class StringTester { static void Main() 287 Xử Lý Chuỗi ... bắt đầu trích Và hai phiên dùng mục thứ hai làm vị trí kết thúc chuỗi Trong ví dụ 10.2 minh họa việc sử dụng phương thức Substring() chuỗi  Ví dụ 10.2 : Sử dụng phương thức Substring() ... tích chuỗi thành chuỗi Để sử dụng Split(), truyền vào mảng ký tự phân cách, ký tự dùng để chia từ chuỗi Và phương thức trả mảng chuỗi  Ví dụ 10.3 : Sử dụng phương thức Split() ... tự chuỗi Nhưng cách gần tốt minh họa hữu dụng cho kỹ thuật Chia chuỗi Một giải pháp giải hiệu để minh họa cho ví dụ 10.2 sử dụng phương thức Split() lớp string Chức phân tích chuỗi thành chuỗi

Ngày đăng: 10/05/2021, 23:56

Tài liệu cùng người dùng

Tài liệu liên quan