Bài giảng Kỹ thuật lập trình - Chương 2: Xử lý mảng và chuỗi

Mảng

Là tập hợp nhiều phần tử có cùng kiểu dữ

liệu

Số phần tử trong mảng được xác định trước

Mỗi phần tử được đánh số chỉ mục, bắt đầu

từ 0

Mảng

Một phòng chứa các tủ

Số lượng tủ chứa ?

Tủ Chứa gì?

Số thứ tự tủ, chỉ mục tủ

Khai báo Mảng

KiểuDữLiệu[] tênMảng;

Ví dụ

 int[] bangDiem;

 string[] loiNoi;

 DateTime[] ngaySinh;

pdf 55 trang kimcuc 7480
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Chương 2: Xử lý mảng và chuỗi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ thuật lập trình - Chương 2: Xử lý mảng và chuỗi

Bài giảng Kỹ thuật lập trình - Chương 2: Xử lý mảng và chuỗi
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Chương 2
Xử lý mảng và chuỗi
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Nội dung
Mảng
Các thao tác trên mảng
Chuỗi
Các thao tác trên chuỗi
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng
Là tập hợp nhiều phần tử có cùng kiểu dữ
liệu
Số phần tử trong mảng được xác định trước
Mỗi phần tử được đánh số chỉ mục, bắt đầu
từ 0
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng
Một phòng chứa các tủ
Số lượng tủ chứa ? 
Tủ Chứa gì?
Số thứ tự tủ, chỉ mục tủ
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng
Khoa Hệ Thống Thông Tin
0 1 2 3 4
Mảng các từ:
Mảng các số nguyên:
0 1 2 3 4 5 6 7
Ví dụ về mảng:
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Khai báo Mảng
KiểuDữLiệu[] tênMảng;
Ví dụ
 int[] bangDiem;
 string[] loiNoi;
 DateTime[] ngaySinh;
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Khởi tạo Mảng
tenMang = new KieuDuLieu[soPhanTu]
Ví dụ
 diem = new int[10];
 loiNoi = new string[20];
 ngaySinh = new DateTime[7];
 float diemTB = new float[5];
0 0 000
0 1 432
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Khởi tạo và gán giá trị Mảng
tenMang = new KieuDuLieu[spt]{gtri1, 
gtri2, gtri3,};
 diem = new int[5]{ 5, 6, 7, 6, 9 }
Giá trị không nhất thiết phải là hằng số
 Ví dụ
Random r = new Random(); 
int[] pins = new int[4]{ 
r.Next() % 10, r.Next() % 10,
r.Next() % 10, r.Next() % 10 };
Số giá trị trong dấu ngoặc phải bằng số phần 
tử mảng được khai báo
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Truy suất từng phần tử Mảng
Xác định số phần tử của mảng
 tenMang.Length
Truy xuất phần tử: tenMang[soThuTu]
 0 <= soThuTu <= (tenMang.Length – 1)
Ví dụ
 Lấy điểm thứ 3 (soThuTu = 2) của mảng diem
int diem3 = diem[2];
 diem3 = 7
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Gán giá trị cho từng phần tử Mảng
Gán điểm thứ 3 của mảng diem là 10
 diem[2] = 10
Gán điểm thứ 4 của mảng diem bằng điểm 
thứ nhất cộng 4
 diem[3] = diem[0] + 4
5 6 9610
0 1 432
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Duyệt Mảng
Dùng vòng lặp for
Ví dụ duyệt mảng diem
for (int i = 0; i < diem.Length; i++)
{
Console.WriteLine(diem[i].ToString());
}
Duyệt và gán phần tử
for (int i = 0; i < diem.Length; i++)
{
diem[i] += 1; 
Console.WriteLine(diem[i].ToString());
}
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Duyệt Mảng bằng foreach
Ví dụ
foreach (int i in diem)
{
Console.WriteLine(i.ToString());
}
Không nên dùng foreach khi
 Cần duyệt một phần trong mảng (ví dụ duyệt từ 
phần tử thứ 2 tới thứ 10)
 Cần duyệt từ cuối về đầu mảng
 Cần biết chỉ số mảng trong vòng lặp
 Cần thay đổi giá trị của phần tử mảng
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Sao chép Mảng
Mảng là kiểu tham chiếu gán mảng là gán 
tham chiếu
Ví dụ
 int[] mangA = diem;
 mangA và diem cùng tham chiếu đến vùng 
nhớ chứa các phần tử của mảng
 Thay đổi giá trị trong mangA sẽ ảnh hưởng đến 
diem
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Sao chép Mảng
diem
mangA
5 6 967
diem
mangA
5 6 968
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Sao chép Mảng
Tạo mảng mới và gán giá trị từ mảng cũ
Dùng CopyTo
 int[] mangA = new int[diem.Length];
 diem.CopyTo(mangA, 0);
Dùng Array.Copy
 Array.Copy(diem, mangA, diem.Length);
Dùng Clone
 mangA = (int[]) diem.Clone();
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Đảo Mảng
Phương thức Reverse của lớp Array thực hiện việc 
đảo thứ tự các phan tử trong mảng. Cú pháp thực 
hiện:
int[] mang = { 15, 26, 7, 28, 19, 6 };
Array.Reverse(mang);
Kết quả:
mang = { 6,19,28,7,26,15};
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Sắp xếp Mảng
Phương thức Sort() của lớp Array thực hiện việc sap 
xep các phan tử trong mảng. Cú pháp thực hiện:
Array.Sort(ten_mang); 
Ví dụ:
int[] mang = { 9, 5, 7, 4, 6 }; 
Array.Sort(mang); 
Kết quả:
mang = { 4, 5, 6, 7,9 }; 
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng
Tìm kiếm trên mảng đã được sắp xếp
Tìm kiếm trên mảng chưa được sắp xếp
0 2 5 6 7 8 9
5 2 9 7 6 0 8
9 8 7 6 5 2 0
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng
Tìm kiếm trên mảng đã được sắp xếp
Phương thức BinarySearch của lớp Array thực 
hiện việc tım̀ kiem một giá trị trong một mảng 
đã được sap xep trước, trả ve ket quả là so
nguyên cho biet chı̉ soindex của pha n tử tım̀ 
được, neu không tım̀ được thı ̀ trả ve -1. Cú 
pháp thực hiện:
int vitri = Array.BinarySearch(tenMang, giaTriCanTim); 
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng đã sắp xếp
Ví dụ:
0 2 5 6 7 8 9
int vitri = Array.BinarySearch(mang, 7); 
Kết quả vitri=4 (Tìm thấy số 7 ở vị trí thứ 4)
int vitri = Array.BinarySearch(mang, 113); 
Kết quả vitri=-1 (-1 tức là không tìm thấy số 113)
mang
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng chưa sắp xếp
Ví dụ:
Giải pháp 1: Sắp xếp mảng trước, sau đó gọi
hàm tìm kiếm nhị phân(đơn giản, tuy nhiên
nếu trường hợp không được thay đổi giá trị
gốc thì không được dùng giải pháp này)
Giải pháp 2: Không sắp xếp, tiến hành dùng
giải thuật tìm kiếm tuyến tính.
mang 5 2 9 7 6 0 8
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng chưa sắp xếp
Giải thuật tìm kiếm tuyến tính
Xét phần tử từ đầu cho đến cuối một cách tuần tự
Tại vị trí thứ i nếu giá trị trong dữ liệu đúng với
khoá cần tìm kiếm -> tìm thấy. Nếu không đúng tìm
đến phần tử kế tiếp i+1
Nếu sau khi xét hết N phần tử mà không có giá trị
khoá cần tìm không tìm thấy
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng chưa sắp xếp
Giải thuật tìm kiếm tuyến tính
• Bước 1: i = 0; // bắt đầu từ phần tử đầu tiên của dãy
• Bước 2: So sánh a[i] với x, có 2 khả năng :
• + a[i] = x : Tìm thấy. Dừng
• + a[i] ≠ x : Sang Bước 3.
• Bước 3 : i = i+1; // xét tiếp phần tử kế trong mảng
• Nếu i = N: Hết mảng,không tìm thấy.Dừng
• Ngược lại: Lặp lại Bước 2. 
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng chưa sắp xếp
Giải thuật tìm kiếm tuyến tính
int TimKiem( int x){
for (int i=0; i<N;i++) {
if (a[i]==x) return i ; //	a[i]	là	phần	tử	có	khoá	x
};
return -1;//	tìm	hết	mảng	nhưng	không	có	x
}
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng chưa sắp xếp
• Ví dụ: Cho dãy số a
• {12, 2, 8, 5, 1, 6, 4, 15}
• Giá trị cần tìm: 8
• i = 0
12 2 158 6 4 15
X=8
0 1 432 5 6 7
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Tìm kiếm trên Mảng chưa sắp xếp
12 2 158 6 4 15
X=8
0 1 432 5 6 7
12 2 158 6 4 15
X=8
0 1 432 5 6 7
i = 1
i = 2
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng đa chiều
7 2 9
9 5 4
8 0 3
0
1
6
 C# hỗ trợ mảng đa chiều, ở đây ta xét mảng 2
chiều vì nó phổ biến nhất.
 Mảng hai chiều thực chất là mảng của những
mảng một chiều. Ta có thể xem mảng hai chiều là
một ma trận gồm các hàng và các cột
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng đa chiều
Dòng 0
Dòng 1
Dòng 2
Cột 1Cột 0 Cột 2 Cột 3
M[0, 0]
7
M[0, 3]
0
M[0, 1]
2
M[0, 2]
9
M[1, 0]
9
M[1, 3]
1
M[1, 1]
5
M[1, 2]
4
M[2, 0]
8
M[2, 3]
6
M[2, 2]
3
M[2, 1]
0
Chỉ số cột
Chỉ số dòng
Tên mảng
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng đa chiều
 Cú pháp khai báo:
Kieu_dữ_liệu[ , ] mang =
new Kieu_dữ_liệu [so_hang, so_cot];
 Ví dụ:
Tạo mảng 2 chiều có 3 dòng 5 cột:
int[ , ] mang = new int[3, 5];
 Đe truy cập phan tử trong mảng hai chieu, ta sử 
dụng index dạng tenMang[vị	trí	dòng, vị	trí	cột].
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng đa chiều
int soDong = 3;
int soCot = 4;
int[,] mang = new int[soDong, soCot];
for(int i = 0; i < soDong; i++)
{
for (int j = 0; j < soCot; j++ )
{
mang[i, j] = (i +1) * j;
}
}
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Mảng đa chiều
 Ngoài ra có thể duyệt bằng cách sau:
for (int i = 0; i < mang.GetLength(0); i++)
{
for (int j = 0; j < mang.GetLength(1); j++)
{
Console.Write(mang[i,j] +" ");
}
Console.WriteLine();
}
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Đánh giá mảng
 Ưu điểm chính của mảng:
o Truy suất nhanh, dễ sử dụng với tập dữ liệu cố
định không thay đổi trong quá trình thực thi
 Hạn chế của mảng:
o Mảng có kích cỡ và số chiều cố định nên khó
khăn trong việc mở rộng ứng dụng.
o Các phần tử được đặt và tham chiếu một cách
liên tiếp nhau trong bộ nhớ nên khó khăn cho
việc xóa một phần tử ra khỏi mảng.
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Xử lý Hạn chế của mảng
 Sử dụng collections:
List, ArrayList, Dictionary để thay thế cho
mảng khi thao tác trên tập dữ liệu có thay đổi trong
quá trình thực thi (Thay đổi giá trị, thay đổi số
lượng, thay đổi vị trí các phần tử)
 Các collection này rất dễ sử dụng và có khả năng
tự “co giãn” theo sự thay đổi của dữ liệu trong
quá trình thực thi.
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Xử lý Hạn chế của mảng
 Ví dụ sử dụng List:
List ds = new List();
ds.Add("an");//thêm phần tử
ds.Add("bình");
ds.Remove("an");//xóa phần tử
ds.Add("happy");
foreach(string s in ds)//duyệt danh sách
{
Console.WriteLine(s);
}
ds.Clear();//xóa toàn bộ 
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Kiểu ký tự
Lưu trữ ký tự Unicode 16-bit
Kiểu trong .NET frameword: System.Char
Miền giá trị: [0, 65535]
Cách khai báo
 Khai báo ký tự
• char ch1 = 'a';
 Chuyển từ số nguyên
• char ch2 = (char) 65; // Ký tự ‘A’
 Chú ý: 
• Sử dụng dấu nháy đơn để khai báo kiểu char
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Chuyển đổi kiểu ký tự
char.Parse(string)
Convert.ToChar(string)
Chú ý: Chuỗi đưa vào chuyển đổi chỉ có 1 ký 
tự.
 char ch1 = Convert.ToChar("a"); // ch1 = ‘a’ 
 char ch1 = Convert.ToChar("aa"); // báo lỗi
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
So sánh kiểu ký tự
Compare:
 So sánh 2 ký tự, trả về hiệu số giữa ký tự so
sánh và ký tự được so sánh.
 Ví dụ:
char ch1 = 'A';
char ch2 = 'B';
Console.WriteLine(ch1.CompareTo(ch2));
 Kết quả: -1 (ký tự ch1 nhỏ hơn 1 so với ký tự
ch2)
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
So sánh kiểu ký tự
Equals
 True: nếu 2 ký tự bằng nhau
 False: nếu 2 ký tự không bằng nhau
Ví dụ
char ch1 = 'A';
char ch2 = (char)65;
char ch3 = 'B';
Console.WriteLine(ch1.Equals(ch2)); //Kết quả ‘True’
Console.WriteLine(ch1.Equals(ch3)); //Kết quả ‘False’
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Kiểm tra ký tự
Char.IsDigit(ch): True nếu ch là chữ số
Char.IsLetter(ch): True nếu ch là chữ cái
Char.IsNumeric(ch): True nếu ch là chữ số 
Unicode
Char.IsWhiteSpace(ch): True nếu ch là 
khoảng trắng
Char.IsLower(ch): True nếu ch là chữ 
thường
Char.IsUpper(ch): True nếu ch là chữ hoa
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Kiểm tra ký tự
Console.WriteLine(Char.IsDigit('1')); //True
Console.WriteLine(Char.IsDigit('½')); //False
Console.WriteLine(Char.IsNumber('½')); //True
Console.WriteLine(Char.IsNumber('2')); //True
Console.WriteLine(Char.IsLetter('1')); //False
Console.WriteLine(Char.IsLower('A')); //False
Console.WriteLine(Char.IsUpper('a')); //False
Console.WriteLine(Char.IsWhiteSpace(' ')); //True
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Thao tác với ký tự
Char.ToLower(char):
 Chuyển ký tự từ chữ hoa sang chữ thường
 char ch1 = 'A';
 Console.WriteLine(Char.ToLower(ch1));
 Kết quả: a
Char.ToUpper(char):
 Chuyển ký tự từ chữ thường sang chữ hoa
 char ch1 = 'a';
 Console.WriteLine(Char.ToLower(ch1));
 Kết quả: A
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Chuỗi
Mảng các ký tự thuộc kiểu char
Kiểu trong .NET framework: System.String
Khai báo chuỗi
 string str = "Text";
Chuỗi với ký tự đặc biệt (escape character)
 Tab: "\t"
 Xuống hàng: "\n"
 Backslash: "\\"
Khai báo nguyên văn: thêm dấu ‘@’
 string str2 = @"C:\Windows";
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Chuyển đổi sang Chuỗi
ToString(): trả về chuỗi ứng với nội dung 
của biến
 int i = 1;
 string str = i.ToString();
Convert.ToString(obj)
 int i = 1;
 string str = Convert.ToString(i);
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Thao tác với Chuỗi
ToCharArray() hoặc []: Trả về mảng các ký 
tự trong chuỗi
string str1 = "Hello";
//Tra ve ky tu e
char ch1 = str1.ToCharArray()[1];
Console.WriteLine(ch1);
Length: Trả về độ dài chuỗi (số ký tự)
 string str1 = "Text";
 int i = str1.Length; //i = 4
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
Tên hàm Mô tả
int CompareTo( 
string value)
Nội dung : So sánh chuỗi đang xét với chuỗi value. Trả về 0 
nếu hai chuỗi bằng nhau, 1 nếu lớn hơn và -1 nếu nhỏ hơn.
Ví dụ : 
string s = "Hello";
int i;
// Trả về i = 1
i = s.CompareTo("hello");
// Trả về i = 0
i = s.CompareTo("Hello");
bool Contains(
string value)
Nội dung : Trả về True nếu trong chuỗi đang xét có chứa 
chuỗi value, trả về False nếu ngược lại.
Ví dụ :
string s = "Hello";
bool i;
// Trả về True
i = s.Constains("lo");
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
void CopyTo( int
sourceIndex, char[] 
destination, int
destinationIndex, 
int count)
Nội dung : Copy count ký tự bắt đầu từ vị trí sourceIndex	
trong chuỗi vào mảng ký tự destination	bắt đầu tại vị trí 
destinationIndex.
Ví dụ :
string s = "hello";
char[] ch = new char[5];
ch[0] = 'a';
ch[1] = 'b';
s.CopyTo(1, ch, 2, 3);
// Trả về mảng ký tự ch là "abell"
Console.WriteLine(ch);
bool EndsWith( 
string value)
Nội dung : Trả về True nếu chuỗi value là chuỗi con kết 
thúc (nằm ở cuối) của chuỗi đang xét.
Ví dụ :
string s = "Hello";
bool b;
// Trả về b = True
b = s.EndsWith("lo");
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
static string
Format( string
format, Object 
arg0, Object arg1, 
Object arg2)
Nội dung : Trả về chuỗi được xây dựng từ chuỗi FormatStr bằng cách thay 
thế các vị trí {:} trong FormatStr thành các giá trị 
value1, value2,  tương ứng.
Ví dụ : 
string s = "Hello";
int n;
n = 14;
// "Giá trị n = 14.00, căn bậc 2 là 3.74"
s = string.Format("Giá trị n = {0:N}, căn bậc 2 là {1:N}", n, 
Math.Sqrt(n));
Console.WriteLine(s);
// "Giá thành sản phẩm = $200.00"
s = string.Format("Giá thành sản phẩm = {0:C}", 200);
Console.WriteLine(s);
DateTime date = new DateTime(2011, 2, 2, 1, 1, 1, 511);
// "Today is Monday, February 2, 2011"
s = string.Format("Today is {0:D}", date);
Console.WriteLine(s);
s = string.Format("{0:dd/MM/yyyy HH:mm:ss}", 
DateTime.Now);
Console.WriteLine(s);
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
bool Equals( string
value)
Nội dung : Trả về True nếu chuỗi đang xét bằng với chuỗi 
value, ngược lại trả về False.
Ví dụ :
string s = "Hello";
bool b;
// Trả về b = True
b = s.Equals("Hello");
string Insert( int
startIndex, string
value)
Nội dung : Trả về chuỗi mới được xây dựng từ chuỗi ban đầu 
bằng cách chèn vào chuỗi ban đầu tại vị trí startIndex chuỗi 
con value.
Ví dụ : 
string s = "Hello !";
string val = "everybody";
//Trả về "Helloeverybody !"
s = s.Insert(5, val);
Console.WriteLine(s);
int IndexOf( 
char/string value)
Nội dung : Trả về vị trí xuất hiện đầu tiên của ký tự hoặc 
chuỗi value trong chuỗi. Trả về -1 nếu không tìm thấy.
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
int IndexOf( 
char/string value, 
int startIndex)
Nội dung : Trả về vị trí xuất hiện đầu tiên của ký tự hoặc chuỗi 
value trong chuỗi kể từ vị trí startIndex. Trả về -1 nếu không tìm 
thấy.
Ví dụ :
string s = "Hello everybody !";
int i = 0;
// Trả về i = 1
i = s.IndexOf("e");
// Trả về i = 6
i = s.IndexOf("e", i + 1);
// Trả về i = 8
i = s.IndexOf("e", i + 1);
int LastIndexOf( 
char/string value)
Nội dung : Tương tự hàm IndexOf, nhưng trả về vị trí xuất hiện 
cuối cùng.
int LastIndexOf( 
char/string value, int
startIndex)
Nội dung : Tương tự hàm IndexOf, nhưng trả về vị trí xuất hiện 
cuối cùng.
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
string PadLeft( int
width)
Nội dung : Trả về chuỗi đã được canh lề trái. Thao tác canh 
lề như sau: tạo chuỗi mới gồm width ký tự, đặt chuỗi ban 
đầu vào bên phải chuỗi mới, các ký tự khoảng trắng sẽ 
được chen vào các vị trí còn trống bên trái trong chuỗi mới.
Ví dụ :
string s = "Hello!";
string s_leftaligned;
// Trả về chuỗi " Hello!"
s_leftaligned = s.PadLeft(10); 
Console.WriteLine(s_leftaligned);
string PadLeft( int
width, char ch)
Nội dung : Tương tự hàm PadLeft ở trên, nhưng thay vì sử 
dụng các ký tự khoảng trắng, các ký tự ch	sẽ được sử dụng.
Ví dụ :
string s = "Hello!";
string s_leftaligned;
// Trả về chuỗi "****Hello!"
s_leftaligned = s.PadLeft(10, '*');
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
string PadRight( int
width)
Nội dung : Tương tự hàm PadLeft, nhưng canh lề phải.
string PadRight( int width, 
char ch)
Nội dung : Tương tự hàm PadLeft, nhưng canh lề phải.
string Remove( int
startIndex, int count)
Nội dung : Trả về chuỗi được xây dựng bằng cách bỏ đi 
trong chuỗi ban đầu count ký tự bắt đầu từ vị trí 
startIndex.
Ví dụ :
string s = "Hello!!!";
// Trả về chuỗi "Hell!"
s = s.Remove(4, 3);
string Replace( string
oldStr, string newStr)
Nội dung : Trả về chuỗi được xây dựng bằng cách thay 
thế các chuỗi con oldStr trong chuỗi ban đầu bằng các 
chuỗi con newStr.
Ví dụ :
string s = "Hello";
// Trả về chuỗi "Hero";
s = s.Replace("ll", "r");
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
bool StartsWith(string
value)
Nội dung : Ngược lại với hàm EndsWith
string Substring(int
startIdx, int count)
Nội dung : Trả về chuỗi con trong chuỗi 
ban đầu, bắt đầu từ vị trí startIdx và có độ 
dài count ký tự.
Ví dụ :
string s = "Hello";
// Trả về chuỗi "ell";
s = s.Substring(1, 3);
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
string ToLower() Nội dung : Trả về chuỗi có kiểu chữ thường 
từ chuỗi ban đầu.
string ToUpper() Nội dung : Trả về chuỗi có kiểu chữ hoa từ 
chuỗi ban đầu.
string Trim() Nội dung : Trả về chuỗi mới sau khi bỏ đi các 
ký tự khoảng trắng ở đầu và cuối của chuỗi 
ban đầu. Tương tự hàm Trim trong thư viện 
hàm của VB.Net.
string TrimEnd() Nội dung : Tương tự hàm Trim, nhưng chỉ bỏ 
đi các ký tự khoảng trắng ở cuối.
string TrimStart() Nội dung : Tương tự hàm Trim, nhưng chỉ bỏ 
đi các ký tự khoảng trắng ở đầu.
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
Các hàm xử lý Chuỗi
string[] Split 
(params char[] 
separator)
Nội dung: Trả về mảng các chuỗi con được phân cách 
bởi separator
Ví dụ :
string str = "mot,hai,ba";
//Tra ve mang gom {"mot", "hai", "ba"}
string[] str2 = str.Split(',');
Console.WriteLine(str2[1]);
static string Join 
(string separator, 
string[] value)
Nội dung: Nối các chuỗi trong mảng value	thành 1 
chuỗi, phân cách bởi separator
Ví dụ :
string[] mang = new string[3];
mang[0] = "mot";
mang[1] = "hai";
mang[2] = "ba";
//Tra ve chuoi "mot*hai*ba"
string str = string.Join("*", mang);
Khoa Hệ Thống Thông Tin
Đại Học Quốc Gia TP.HCM
Đại Học Kinh Tế Luật
END

File đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_chuong_2_xu_ly_mang_va_chuoi.pdf