Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Ngôn ngữ Csharp phần 8 pdf
MIỄN PHÍ
Số trang
40
Kích thước
1.9 MB
Định dạng
PDF
Lượt xem
1408

Ngôn ngữ Csharp phần 8 pdf

Nội dung xem thử

Mô tả chi tiết

Ngôn Ngữ Lập Trình C#

// Tham số thứ ba là true sẽ 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);

// phương thức nối các chuỗi

string s4 = string.Concat(s1, s2);

Console.WriteLine(“Chuoi S4 noi tu chuoi S1 va S2: {0}”, s4);

// sử dụng nạp chồng toán tử +

string s5 = s1 + s2;

Console.WriteLine(“Chuoi S5 duoc noi tu chuoi S1 va S2: {0}”, s5);

// Sử dụng phương thức copy chuỗi

string s6 = string.Copy(s5);

Console.WriteLine(“S6 duoc sao chep tu S5: {0}”, s6);

// Sử dụng nạp chồng toán tử =

string s7 = s6;

Console.WriteLine(“S7 = S6: {0}”, s7);

// Sử dụng ba cách so sánh hai chuỗi

// Cách 1 sử dụng một chuỗi để so sánh với chuỗi còn lại

Console.WriteLine(“S6.Equals(S7) ?: {0}”, s6.Equals(s7));

// Cách 2 dùng hàm của lớp string so sánh hai chuỗi

Console.WriteLine(“Equals(S6, s7) ?: {0}”, string.Equals(s6, s7));

// Cách 3 dùng toán tử so sánh

Console.WriteLine(“S6 == S7 ?: {0}”, s6 == s7);

// Sử dụng hai thuộc tính hay dùng là chỉ mục và chiều dài của 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] );

// 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”));

// Trả về chỉ mục của một chuỗi con

Console.WriteLine(“\nTim vi tri xuat hien dau tien cua chu CNTT ”);

Console.WriteLine(“trong chuoi S3 là {0}\n”, s3.IndexOf(“CNTT”));

// Chèn từ nhân lực vào trước CNTT trong chuỗi S3

string s8 = s3.Insert(18, “nhan luc ”);

Console.WriteLine(“ S8 : {0}\n”, s8);

Xử Lý Chuỗi

281

Ngôn Ngữ Lập Trình C#

// Ngoài ra ta có thể kết hợp như sau

string s9 = s3.Insert( s3.IndexOf( “CNTT” ) , “nhan luc ”);

Console.WriteLine(“ S9 : {0}\n”, s9);

} // end Main

} // end class

} // end namespace

-----------------------------------------------------------------------------

 Kết quả:

So sanh hai chuoi S1: abcd và S2: ABCD ket qua: -1

Khong phan biet chu thuong va hoa

S1: abcd , S2: ABCD, ket qua : 0

Chuoi S4 noi tu chuoi S1 va S2: abcdABCD

Chuoi S5 duoc noi tu chuoi S1 + S2: abcdABCD

S6 duoc sao chep tu S5: abcdABCD

S7 = S6: abcdABCD

S6.Equals(S7) ?: True

Equals(S6, s7) ?: True

S6 == S7 ?: True

Chuoi S7 co chieu dai la : 8

Ky tu thu 3 cua chuoi S7 la : c

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 ? : True

Tim vi tri xuat hien dau tien cua chu CNTT

trong chuoi S3 là 18

S8 : Trung Tam Dao Tao nhan luc CNTT

Thanh pho Ho Chi Minh Viet Nam

S9 : Trung Tam Dao Tao nhan luc CNTT

Thanh pho Ho Chi Minh Viet Nam

-----------------------------------------------------------------------------

Như chúng ta đã xem đoạn chương trình minh họa trên, chương trình bắt đầu với ba khai báo

chuỗi:

string s1 = “abcd”;

string s2 = “ABCD”;

Xử Lý Chuỗi

282

Ngôn Ngữ Lập Trình C#

string s3 = @“Trung Tam Dao Tao CNTT

Thanh pho Ho Chi Minh Viet Nam”;

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:

// So sánh hai chuỗi với nhau có phân biệt chữ thường và chữ hoa

result = string.Compare( s1 ,s2);

Console.WriteLine(“So sanh hai chuoi s1: {0} và s2: {1} ket qua: {2} \n”,

s1 ,s2 ,result);

Ở đây việc so sánh có phân biệt chữ thường và chữ hoa, phương thức trả về các giá trị khác

nhau phụ thuộc vào kết quả so sánh:

 Một số âm nếu chuỗi đầu tiên nhỏ hơn chuỗi thứ hai

 Giá trị 0 nếu hai chuỗi bằng nhau

 Một số dương nếu chuỗi thứ nhất lớn hơn chuỗi thứ hai.

Trong trường hợp so sánh trên thì đưa ra kết quả là chuỗi s1 nhỏ hơn chuỗi s2. Trong

Unicode cũng như ASCII thì thứ tự của ký tự thường nhỏ hơn thứ tự của ký tự hoa:

So sanh hai chuoi S1: abcd và S2: ABCD ket qua: -1

Cách so sánh thứ hai dùng phiên bản nạp chồng Compare() lấy ba tham số. Tham số Boolean

quyết định bỏ qua hay không bỏ qua việc so sánh phân biệt chữ thường và chữ hoa. Tham số

này có thể bỏ qua. Nếu giá trị của tham số là true thì việc so sánh sẽ bỏ qua sự phân biệt chữ

thường và chữ hoa. Việc so sánh sau sẽ không quan tâm đến kiểu loại chữ:

// Tham số thứ ba là true sẽ 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 này thì việc so sánh hoàn toàn giống nhau và kết quả trả về là giá trị 0:

Khong phan biet chu thuong va hoa

S1: abcd , S2: ABCD, ket qua : 0

Ví dụ minh họa 10.1 trên tiếp tục với việc nối các chuỗi lại với nhau. Ở đây sử dụng hai cách

để nối liền hai chuỗi. Chúng ta có thể sử dụng phương thức Concat() đây là phương thức

public static của string:

string s4 = string.Concat(s1, s2);

Hay cách khác đơn giản hơn là việc sử dụng toán tử nối hai chuỗi (+):

string s5 = s1 + s2;

Trong cả hai trường hợp thì kết quả nối hai chuỗi hoàn toàn thành công và như sau:

Xử Lý Chuỗi

283

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ự như vậy, việc tạo một chuỗi mới có thể được thiết lập bằng hai cách. Đầu tiên là

chúng ta có thể sử dụng phương thức static Copy() như sau:

string s6 = string.Copy(s5);

Hoặc thuận tiện hơn chúng ta có thể sử dụng phương thức nạp chồng toán tử (=) thông qua

việc sao chép ngầm định:

string s7 = s6;

Kết quả của hai cách tạo trên đều hoàn toàn như nhau:

S6 duoc sao chep tu S5: abcdABCD

S7 = S6: abcdABCD

Lớp String của .NET cung cấp ba cách để kiểm tra bằng nhau giữa hai chuỗi. Đầu tiên là

chúng ta có thể sử dụng phương thức nạp chồng Equals() để kiểm tra trực tiếp rằng S6 có

bằng S7 hay không:

Console.WriteLine(“S6.Equals(S7) ?: {0}”, S6.Equals(S7));

Kỹ thuật so sánh thứ hai là truyền cả hai chuỗi vào phương thức Equals() của string:

Console.WriteLine(“Equals(S6, s7) ?: {0}”, string.Equals(S6, S7));

Và phương pháp cuối cùng là sử dụng nạp chồng toán tử so sánh (=) của String:

Console.WriteLine(“S6 == S7 ?: {0}”, s6 == s7);

Trong cả ba trường hợp thì kết quả trả về là một giá trị Boolean, ta có kết quả như sau:

S6.Equals(S7) ?: True

Equals(S6, s7) ?: True

S6 == S7 ?: True

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ử. 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 ra ký 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àn bộ 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 : 8

Ky tu thu 3 cua chuoi S7 la : c

Phương thức EndsWith() hỏi xem một chuỗi có chứa một chuỗi con ở vị trí cuối cù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

Xử Lý Chuỗi

284

Tải ngay đi em, còn do dự, trời tối mất!