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
55 trang |
Chia sẻ: thanhle95 | Lượt xem: 524 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Kỹ thuật lập trình - Chương 2: Xử lý mảng và chuỗi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 pha n 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 sa p
xe p các pha n 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̀ kie m một giá trị trong một mảng
đã được sa p xe p trước, trả ve ke t quả là so
nguyên cho bie t chı̉ so index của pha n tử tım̀
được, ne u 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:
Kie u_dữ_liệu[ , ] mang =
new Kie u_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 pha n tử trong mảng hai chie u, 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
(par