ố 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 vM ngả vCác thao tác trên m ngả vChu iỗ vCác thao tác trên chu iỗ

ố Khoa H  Th ng Thông Tin

ầ ử

M ngả vLà  t p  h p  nhi u  ph n  t

ữ   có  cùng  ki u  d

trong m ng đ

ướ c ắ ầ

ượ ố

ầ ử ượ

ị c xác đ nh tr ỉ ụ c đánh s  ch  m c, b t đ u

đ

li uệ vS  ph n t ầ ử ố vM i ph n t ỗ  0ừ

t

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố Khoa H  Th ng Thông Tin

M ngả

ỉ ụ ủ

ủ ứ ộ M t phòng ch a các t ủ ứ ố ượ  ch a ?  ng t v S  l ứ ủ v T  Ch a gì? ố ứ ự ủ v S  th  t

t

, ch  m c t

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố Khoa H  Th ng Thông Tin

M ngả

ụ ề ả Ví d  v  m ng:

M ng các t

:

Khoa

Hệ

Th ngố

Thông

Tin

0

3

4

1

2

M ng các s  nguyên:

6

1

4

0

1

2

8

9

2

4

0

1

3

5

6

7

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố Khoa H  Th ng Thông Tin

ể ữ ệ []   tênM ng;ả

Khai báo M ngả vKi uD Li u vVí dụ

§ int[] bangDiem; § string[] loiNoi; § DateTime[] ngaySinh;

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố 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 vtenMang = new KieuDuLieu[soPhanTu] vVí dụ

§ diem = new int[10]; § loiNoi = new string[20]; § ngaySinh = new DateTime[7]; § float diemTB = new float[5];

0

0

0

0

0

0

1

2

3

4

ố 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 vtenMang = new KieuDuLieu[spt]{gtri1, gtri2,

gtri3,…}; § diem = new int[5]{ 5, 6, 7, 6, 9 }

ế

vGiá 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 };

ả ằ

vS  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

ầ ử ả

M ng

ầ ử ủ

c a m ng

ầ ử

ấ ừ Truy su t t ng ph n t vXác đ nh s  ph n t § tenMang.Length vTruy xu t ph n t ấ

: tenMang[soThuTu]

§ 0 <= soThuTu <= (tenMang.Length – 1)

vVí dụ ấ

diem

§ L y đi m th  3 (soThuTu = 2) c a m ng  ể 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

ầ ử ả

M ng ả

Gán giá tr  cho t ng ph n t vGán đi m th  3 c a m ng diem là 10 ủ

ứ ể § diem[2] = 10

5

6

10

6

9

0

3

1

4

2 vGá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

ố 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 vDùng vòng l p for vVí d  duy t m ng diem ệ for (int i = 0; i < diem.Length; i++) {

Console.WriteLine(diem[i].ToString());

ầ ử

} vDuy 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 vVí dụ foreach (int i in diem) {

Console.WriteLine(i.ToString());

} vKhô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 i th  10)  th  2 t § 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

Sao chép M ngả vM ng là ki u tham chi u  ể

ế  gán m ng là gán

tham chi uế

vVí 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

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố Khoa H  Th ng Thông Tin

Sao chép M ngả

diem

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

5

6

7

6

9

mangA

diem

5

6

8

6

9

mangA

ố Khoa H  Th ng Thông Tin

ị ừ ả

m ng cũ

Sao chép M ngả vT o m ng m i và gán giá tr  t ớ ả vDùng CopyTo

§ int[] mangA = new int[diem.Length]; § diem.CopyTo(mangA, 0);

vDùng Array.Copy

§ Array.Copy(diem, mangA, diem.Length);

vDùng Clone

§ mangA = (int[]) diem.Clone();

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố 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

ự ́

́

ự

ử

ng  th c ́ ́ ́ ư ự

̣ ̣

̉ ơ Array  th c  hiên  viêc   trong mang. Cu  pha p th c

ư Reverse  cua  l p ́ ̀  ca c phâ n t

̉ ̉

̣

ế

ươ Ph đao th  t 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

ư Sort() cua l p ́

ng th c ́ ̀

̉ ơ Array th c hiên viêc să p ́ ự ́

ự

ử

̣ ̣

ươ Ph ́ ́ xê p ca c phâ n t

́  trong mang. Cu  pha 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 vTìm ki m trên m ng đã đ

c s p x p

0 2 5 6 7 8 9

9 8 7 6 5 2 0

ư ượ ắ

ế

ế

vTìm ki m trên m ng ch a đ

c s p x p

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

ế

ượ ắ

ư

ế ơ

ế ng  th c ́

c s p x p BinarySearch  cua  l p ́ ̀

̉

̀

́

́

̃

ươ

ượ

̣ ̣ ̣ ̣ ̣

c să p xê p tr

̀

̉ ̉ ̉

̀

̀

ượ

̉ ̉

́ c,  ́ ượ , nê u không ti m đ

́ ự

̉

̣

ả Tìm ki m trên M ng vTìm ki m trên m ng đã đ ươ Array  Ph ́ ́ ự th c hiên viêc ti m kiê m môt gia  tri trong môt  ́ tra vê  kê t qua  mang đa  đ ̀ ́ ́ la  sô  nguyên cho biê t chi sô  index cua phâ n  ̀ ̀ử c thi  tra vê   c  ti m đ t ́ ́ ­1. Cu  pha 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 vVí d :ụ

mang

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)

ố Khoa H  Th ng Thông Tin

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ế

ư ắ ế

i pháp 1: ế

ị ng  h p  không  đ ượ

ế

Không s p x p, ti n hành dùng

ế

ả Tìm ki m trên M ng ch a s p x p vVí d :ụ mang 5 2 9 7 6 0 8 vGi ế ướ ọ  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  ị ổ ượ ợ ườ ế c  thay  đ i  giá  tr   n u  tr ả ố i pháp này) c dùng gi g c thì không đ vGi ế ắ ả i pháp 2: ế ậ ả i thu t tìm ki m tuy n tính. gi

ố 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 vGi

ế i thu t tìm ki m tuy n tính

ế

ầ ự

Xét ph n t

ế

ạ ị

ữ ệ

ế

ế

ế

ị   mà  không  có  giá  tr

ố ầ ử ừ ầ  đ u cho đ n cu i m t cách tu n t  t ị ứ  i  n u  giá  tr   trong  d   li u  đúng  v i  T i  v   trí  th ế ầ khoá c n tìm ki m ­> tìm th y. N u không đúng tìm  ầ ử ế ế i+1  k  ti p  đ n ph n t ầ ử ế N u  sau  khi  xét  h t  N  ph n  t  không tìm th yấ ầ khoá c n tìm

ố Khoa H  Th ng Thông Tin

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ế

ư ắ ế

ế i thu t tìm ki m tuy n tính

ế ắ ầ ừ ầ ử ầ  ph n t

ả ướ ướ

đ u tiên c a dãy ả

ầ ử ế  k  trong m ng ấ

ả Tìm ki m trên M ng ch a s p x p vGi ậ • B c 1: i = 0; // b t đ u t •   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 ướ ế •   N u i = N: H t m ng,không tìm th y.D ng ả ế ế •   Ng ặ ạ ướ ượ ạ i B c 2.  i: L p l c l

ố Khoa H  Th ng Thông Tin

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ế

ư ắ ế

ế

ế i thu t tìm ki m tuy n tính

ầ ử

có khoá x

ả Tìm ki m trên M ng ch a s p x p vGi int TimKiem( int x){ for (int i=0; i

ư

ế

ả 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

X=8

12

2

8

5

1

6

4

15

0

1

2

3

4

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

X=8

i = 1

12

2

8

5

1

6

4

15

0

1

2

3

4

5

6

7

i = 2

X=8

12

2

8

5

1

6

4

15

0

1

2

3

4

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

M ng đa chi u

7 2 9 9 5 4 8 0 3

0 1 6

ỗ ợ

đây  ta  xét  m ng  2

ề ở ấ

ả Ø C#  h   tr   m ng  đa  chi u,  ổ ế 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

C t 0ộ

C t 1ộ

C t 2ộ

C t 3ộ

Dòng 0

M[0, 0] 7

M[0, 1] 2

M[0, 2] 9

M[0, 3] 0

Dòng 1

M[1, 0] 9

M[1, 1] 5

M[1, 2] 4

M[1, 3] 1

Dòng 2

M[2, 0] 8

M[2, 3] 6

M[2, 1] 0

Tên m ngả

M[2, 2] 3 ỉ ố ộ Ch  s  c t ỉ ố Ch  s  dò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:

̃

̉

̣ [ , ] mang =  ư Kiêu_d _liêu ̃ ư new Kiê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];

ử

̉ ̣

ử   trong  mang  hai  chiê u,  ta  s

́

̀

̉ ̣ ̉

̀  tenMang[vi tri  do ng

̀ ́ , vi tri  côt

Ø Đê  truy  câp  phâ n  t dung index dang

̣ ].

̣ ̣ ̣ ̣

ố 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

Đánh giá m ngả

Ø

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

Ư ể

ữ ệ

ớ ậ

ả 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ó

ế

ệ ầ ử ượ   đ

o Các  ph n  t

ầ ử

ổ ả ỡ ở ộ ứ khăn trong vi c m  r ng  ng d ng. ặ 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  ả ỏ ộ  ra kh i m ng. xóa m t ph n t

ố 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  ổ ố ượ ổ ng,  quá trình th c thi (Thay đ i giá tr , thay đ i s  l ầ ử thay đ i v  trí các ph n t …) ấ ễ ử ụ v Các collection này r t d  s  d ng và có kh  năng  ự   “co  giãn”  theo  s   thay  đ i  c a  d   li u  trong

ự t 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

new

=

ds

ụ ử ụ Ø Ví d  s  d ng List: List 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

System.Char

Ki u ký t vL u tr  ký t ự ư  Unicode 16­bit vKi u trong .NET frameword:  ể vMi n giá tr : [0, 65535] ị ề vCá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 vchar.Parse(string) vConvert.ToChar(string) vChú ý: 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 vCompare:

so sánh

, tr  v  hi u s  gi a ký t

§ So sánh 2 ký t ự ượ  đ

ự ả ề ệ ố ữ c so sánh.

và ký t § 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 vEquals

ự ằ ự

b ng nhau ằ  không b ng nhau

§ True: n u 2 ký t ế § False: n u 2 ký t ế

vVí 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 vChar.IsDigit(ch): True n u ế ch là ch  sữ ố vChar.IsLetter(ch): True n u ế ch là ch  cáiữ vChar.IsNumeric(ch): True n u ế ch là ch  s  ữ ố

Unicode

vChar.IsWhiteSpace(ch): True n u ế ch là

kho ng tr ng

vChar.IsLower(ch): True n u ế ch là ch  ữ

th

ngườ

vChar.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 vConsole.WriteLine(Char.IsDigit('1')); //True vConsole.WriteLine(Char.IsDigit('½')); //False vConsole.WriteLine(Char.IsNumber('½')); //True vConsole.WriteLine(Char.IsNumber('2')); //True vConsole.WriteLine(Char.IsLetter('1')); //False vConsole.WriteLine(Char.IsLower('A')); //False vConsole.WriteLine(Char.IsUpper('a')); //False vConsole.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 vChar.ToLower(char):

ữ ườ

ự ừ ữ

ng

ch  hoa sang ch  th

§ Chuy n ký t ể  t § char ch1 = 'A'; § Console.WriteLine(Char.ToLower(ch1)); § K t qu :  ả a ế vChar.ToUpper(char): ự ừ ữ ườ  ch  th

t

ng sang ch  hoa

§ Chuy n ký t ể § char ch1 = 'a'; § Console.WriteLine(Char.ToLower(ch1)); § K t qu :  ế

ả A

ố Khoa H  Th ng Thông Tin

thu c ki u

ể char

System.String

Chu iỗ vM ng các ký t ả vKi u trong .NET framework:  ể vKhai báo chu iỗ

§ string str = "Text"; ự ặ

đ c bi

t (escape character)

"\n"

vChu i v i ký t ỗ ớ § Tab: "\t" § Xu ng hàng:  ố § Backslash: "\\"

vKhai báo nguyên văn: thêm d u ‘@’

§ string str2 = @"C:\Windows";

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ố 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 vToString(): tr  v  chu i  ng v i n i dung

ế ủ c a bi n § int i = 1; § string str = i.ToString(); vConvert.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 vToCharArray() ho c ặ []: Tr  v  m ng các ký

ỗ ự  trong chu i t string str1 = "Hello"; //Tra ve ky tu e char ch1 = str1.ToCharArray()[1]; Console.WriteLine(ch1);

vLength: 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ả

: So sánh chu i đang xét v i chu i

ả ề ỏ ơ

ế ớ

ỗ ằ

ế

ơ

int  CompareTo(  stri ng value)

ỗ value. Tr  v  0  ộ N i dung ế 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";

ả ề

ả ề

: Tr  v  True n u trong chu i đang xét có ch a

ế ế

ỗ ượ ạ i. c l

bool  Contains( string  value)

ả ề

int i;         // Tr  v  i = 1         i = s.CompareTo("hello");         // Tr  v  i = 0         i = s.CompareTo("Hello"); ả ề N i dung ả ề chu i ỗ value, tr  v  False n u ng Ví dụ :  string s = "Hello";  bool i;        // Tr  v  True         i = s.Constains("lo");

ố Khoa H  Th ng Thông Tin

b t đ u t

v  trí

ắ ầ ạ ị

ự ắ ầ ừ ị ự destination b t đ u t

sourceIndex  i v  trí

ch là "abell"

ả ề

ế

: Tr  v  True n u chu i

ỗ value là chu i con k t

ằ ở ố

ế ỗ  cu i) c a chu i đang xét.

bool  EndsWith( string  value)

ạ ọ ế ạ ọ Đ 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   : Copy count ký t N i dung sourceIndex, char[]  ả ỗ trong chu i vào m ng ký t destination, int  destinationIndex. destinationIndex, int  Ví dụ : count)   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  Console.WriteLine(ch); N i dung thúc (n m  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

ả ề

ằ ỗ FormatStr b ng cách thay

chu i

c xây d ng t

ộ ế

FormatStr thành các giá tr  ị

ỗ ượ ể ng  ng.

static string Format(  string format,  Object arg0, Object  arg1, Object arg2)

, n,

, 200);

N i dung  : Tr  v  chu i đ ị th  các v  trí {:} trong  ươ ứ value1, value2, … t 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}" 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}"         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

ế

ả ề  : Tr  v  True n u chu i đang xét b ng v i chu i  ượ ạ ả ề

i tr  v  False.

c l

ạ ọ ế ạ ọ Đ 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  N i dung value)  value, ng Ví dụ :

string s = "Hello";

ả ề

ớ ượ

chu i ban đ u

: Tr  v  chu i m i đ

ỗ ỗ

ầ ạ ị

ỗ ầ startIndex chu i ỗ

ự c xây d ng t i v  trí

string Insert( int  startIndex, string  value)

ả ề ị

ầ ế

ự ặ  ho c  ấ

int  IndexOf( char/string  value)

bool b; ả ề         // Tr  v  b = True         b = s.Equals("Hello"); ộ N i dung ằ b ng cách chèn vào chu i ban đ u t con value. Ví dụ :              string s = "Hello !";             string val = "everybody"; ả ề             //Tr  v  "Helloeverybody !"             s = s.Insert(5, val);             Console.WriteLine(s); ệ ấ N i dung  : Tr  v  v  trí xu t hi n đ u tiên c a ký t chu i ỗ value trong chu i. Tr  v  ­1 n u không tìm th y. ả ề

ố Khoa H  Th ng Thông Tin

: Tr  v  v  trí xu t hi n đ u tiên c a ký t

ủ ả ề

ỗ ể ừ ị

ự ặ  ho c chu i  ế startIndex. Tr  v  ­1 n u không tìm

ấ  v  trí

int  IndexOf( char/string  value, int  startIndex)

ả ề

ả ề

ươ

ả ề ị

ư

ng t

: T

hàm IndexOf, nh ng tr  v  v  trí xu t hi n

ộ ố

ạ ọ ế ạ ọ Đ i H c Qu c Gia TP.HCM ậ Đ i H c Kinh T  Lu t

ỗ ử Các hàm x  lý Chu i ả ề ị N i dung value trong chu i k  t 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); N i dung cu i cùng.

int  LastIndexOf( char/strin g value)

ươ

ả ề ị

ư

: T

ng t

hàm IndexOf, nh ng tr  v  v  trí xu t hi n

ộ ố

N i dung cu i cùng.

int  LastIndexOf( char/strin g value, int startIndex)

ố Khoa H  Th ng Thông Tin

c canh l

: Tr  v  chu i đã đ ỗ

ề ớ ồ width ký t

trái. Thao tác canh  ự ặ , đ t chu i ban  ả

ẽ  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.

ả ề

hàm PadLeft

string PadLeft( int  width, char ch)

ươ ự

ư ử  trên, nh ng thay vì s   ẽ ượ ử ụ

ự ch s  đ

c s  d ng.

ả ề

ạ ọ ế ạ ọ Đ 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  N i dung width)  ạ ề ư  nh  sau: t o chu i m i g m  l ầ ả đ u vào bên ph i chu i m i, các ký t ượ đ Ví dụ : string s = "Hello!"; string s_leftaligned; ỗ // Tr  v  chu i "    Hello!" s_leftaligned = s.PadLeft(10);             Console.WriteLine(s_leftaligned); ự ộ ng t N i dung  : T ắ ả ụ  kho ng tr ng, các ký t d ng các ký t 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.

ươ

ư

N i dung

: T

ng t

hàm PadLeft, nh ng canh l

ả  ph i.

ả ề

string PadRight( int width,  char ch)  string Remove( int  startIndex, int count)

ằ ự c xây d ng b ng cách b  đi  ự ắ ầ ừ ị  v  trí   b t đ u t

ỗ ượ ầ count ký t

: Tr  v  chu i đ N i dung ỗ trong chu i ban đ u  startIndex. Ví dụ :

ỗ ượ

: Tr  v  chu i đ

string Replace( string  oldStr, string newStr)

ằ c xây d ng b ng cách thay  ầ

ự oldStr trong chu i ban đ u b ng các

string s = "Hello!!!"; ả ề         // Tr  v  chu i "Hell!"         s = s.Remove(4, 3);          ả ề ộ N i dung ỗ ế th  các chu i con  ỗ newStr. chu i con  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

ượ ạ ớ

N i dung

: Ng

i v i hàm EndsWith

c l

bool StartsWith(string  value)  string Substring(int startIdx,  int count)

ỗ  v  trí

startIdx và có đ  ộ

.ự

ả ề  : Tr  v  chu i con trong chu i  N i dung ắ ầ ừ ị ầ ban đ u, b t đ u t 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()

ữ ườ

: Tr  v  chu i có ki u ch  th

ng

ả ề ộ N i dung ầ ừ t  chu i ban đ u.

string ToUpper()

ả ề

: Tr  v  chu i có ki u ch  hoa t

N i dung ỗ chu i ban đ u.

string Trim()

ỏ ố ủ

ả ề ớ ỗ  : Tr  v  chu i m i sau khi b  đi  ở ầ ắ ả  đ u và cu i c a   kho ng tr ng  ư ự ươ  hàm Trim trong th   ng t

string TrimEnd()

ệ ộ

ư

ỉ ỏ  hàm Trim, nh ng ch  b   ắ

ng t ả

ở ố

N i dung ự các ký t ầ ỗ chu i ban đ u. T ủ vi n hàm c a VB.Net.  : T N i dung ự đi các ký t

ươ  kho ng tr ng

cu i.

string TrimStart()

ư

: T ự

ỉ ỏ  hàm Trim, nh ng ch  b   ắ

ng t ả

ở ầ

N i dung đi các ký t

ươ  kho ng tr ng

đ u.

ố Khoa H  Th ng Thông Tin

ả ề ả

ượ

Tr  v  m ng các chu i con đ

c phân cách

ạ ọ ế ạ ọ Đ 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:  b i ở separator Ví dụ :

string str = "mot,hai,ba";

value thành 1

ỗ  N i các chu i trong m ng  ở separator

static string Join  (string separator,  string[] value)

//Tra ve mang gom {"mot", "hai", "ba"}        string[] str2 = str.Split(',');        Console.WriteLine(str2[1]); N i dung: ỗ chu i, phân cách b i  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