Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
763,5 KB
Nội dung
Chương 7–Chuỗivàkí tự
Outline
7.1 Giới thiệu về chuỗivàkí tự
7.2 Khởi tạo chuỗi
7.4 Chỉ số chuỗi, thuộc tính độ dài Length và phương thức CopyTo
7.5 So sánh chuỗi
7.6 Phương thức GetHashCode
7.7 Định vị kítựvà một xâu con trong chuỗi
7.8 Trích chọn xâu con từ chuỗi
7.9 Nối, ghép chuỗi
7.10 Các phương thức xử lý chuỗi khác
7.11 Lớp StringBuilder
7.12 Phương thức EnsureCapacity
7.13 Các phương thức StringBuilder Append và AppendFormat
7.14 Phương thức StringBuilder Insert, Remove và Replace
7.15 Các phương thức xử lý kítự
7.16 Card Shuffling và Dealing Simulation
7.17 Các biểu thức và lớp Regex
7.1 Giới thiệu về chuỗivàkí tự
Chuỗi và ký tự có khả năng
Sửa đổi text
Xử lý các từ
Mở rộng từ các chương trước
Lớp String và kiểu char
Lớp StringBuilder
Lớp Regex và Match
Tầm quan trọng của các ký tự
Hằng ký tự : là số nguyên đại diện cho ký tự đó
Mã hoá ký tự
Bảng ký tự Unicode
Chuỗi - String
Đối tượng của lớp String trong không gian tên System
Bao gồm các ký tự
7.2 Khởi tạo chuỗi
Lớp string cung cấp 8 hàm tạo chuỗi theo nhiều
cách khác nhau
Ta xét ví dụ sau
1 // StringConstructor.cs
2 // Demonstrating String class constructors.
3
4 using System;
5 using System.Windows.Forms;
6
7 // test several String class constructors
8 class StringConstructor
9 {
10 // The main entry point for the application.
11 [STAThread]
12 static void Main( string[] args )
13 {
14 string output;
15 string originalString, string1, string2,
16 string3, string4;
17
18 char[] characterArray =
19 { 'b', 'i', 'r', 't', 'h', ' ', 'd', 'a', 'y' };
20
21 // string initialization
22 originalString = "Welcome to C# programming!";
23 string1 = originalString;
24 string2 = new string( characterArray );
25 string3 = new string( characterArray, 6, 3 );
26 string4 = new string( 'C', 5 );
27
28 output = "string1 = " + "\"" + string1 + "\"\n" +
29 "string2 = " + "\"" + string2 + "\"\n" +
30 "string3 = " + "\"" + string3 + "\"\n" +
31 "string4 = " + "\"" + string4 + "\"\n";
32
Khai báo chuỗi
xác định mảng char
characterArray chứa 9 ký tự
Gán một chuỗi chữ tham
chiếu cho chuỗi
originalString
Cho string1 tham
chiếu tới cùng chuỗi
chữ đó
String2 được gán là một
chuỗi mới
Hàm khởi tạo String
nhận một mảng ký tự
làm tham số
Hàm khởi tạo String nhận
một mảng char và hai số
nguyên int làm tham số
Bắt đầu chỉ số và đếm
ArgumentOutOfRangeException
loại bỏ nếu phần tử nằm ngoài
khoảng
Dùng hàm khởi tạo string với một ký
tự và một số nguyên để đếm số lần lặp
lại ký tự trong string
Chuỗi ra
StringConstructor.cs
33 MessageBox.Show( output, "String Class Constructors",
34 MessageBoxButtons.OK, MessageBoxIcon.Information );
35
36 } // end method Main
37
38 } // end class StringConstructor
Hiển thị kết quả ra
StringConstructor.cs
7.4 Chỉ số chuỗi, thuộc tính độ dài Length và
phương thức CopyTo
Chỉ số chuỗi
Chỉ số chuỗi cho phép xác định vị trí các ký tự trong chuỗi.
Thuộc tính độ dài
Trả về giá trị chiều dài của chuỗi ký tự
CopyTo
Copy một số ký tự trong chuỗi vào một mảng kiểu ký tự nào đó
1 // StringMethods.cs
2 // Using the indexer, property Length and method CopyTo
3 // of class String.
4
5 using System;
6 using System.Windows.Forms;
7
8 // creates string objects and displays results of using
9 // indexer and methods Length and CopyTo
10 class StringMethods
11 {
12 // The main entry point for the application.
13 [STAThread]
14 static void Main( string[] args )
15 {
16 string string1, output;
17 char[] characterArray;
18
19 string1 = "hello there";
20 characterArray = new char[ 5 ];
21
22 // output string
23 output =
24 "string1: \"" + string1 + "\"";
25
26 // test Length property
27 output += "\nLength of string1: " + string1.Length;
28
29 // loop through character in string1 and display
30 // reversed
31 output += "\nThe string reversed is: ";
32
33 for ( int i = string1.Length - 1; i >= 0; i )
34 output += string1[ i ];
35
Khai báo String
String1 để lưu chuỗi
chữ “hello there”
Nối vào kết quả ra
chuỗi string1 theo
thứ tự ngược lại
StringMethods.cs
36 // copy characters from string1 into characterArray
37 string1.CopyTo( 0, characterArray, 0, 5 );
38 output += "\nThe character array is: ";
39
40 for ( int i = 0 ; i < characterArray.Length; i++ )
41 output += characterArray[ i ];
42
43 MessageBox.Show( output, "Demonstrating the string " +
44 "Indexer, Length Property and CopyTo method",
45 MessageBoxButtons.OK, MessageBoxIcon.Information );
46
47 } // end method Main
48
49 } // end class StringMethods
Chỉ số để bắt đầu
copy
Copy tới mảng ký tự này
Chỉ số vị trí đặt vào
mảng ký tự
Số ký tự cần copy
từ string
Nối nội dung mảng
char vào xâu string
output
Phương thức Copyto được
gọi bởi string1
StringMethods.cs
7.5 So sánh chuỗi
So sánh chuỗi
Lớn hơn
Nhỏ hơn
Phương thức Equals
Kiểm tra sự bằng nhau của các đối tượng
Trả lại giá trị logic Bool
Dùng cách so sánh từ điển
1 // StringCompare.cs
2 // Comparing strings.
3
4 using System;
5 using System.Windows.Forms;
6
7 // compare a number of strings
8 class StringCompare
9 {
10 // The main entry point for the application.
11 [STAThread]
12 static void Main( string[] args )
13 {
14 string string1 = "hello";
15 string string2 = "good bye";
16 string string3 = "Happy Birthday";
17 string string4 = "happy birthday";
18 string output;
19
20 // output values of four strings
21 output = "string1 = \"" + string1 + "\"" +
22 "\nstring2 = \"" + string2 + "\"" +
23 "\nstring3 = \"" + string3 + "\"" +
24 "\nstring4 = \"" + string4 + "\"\n\n";
25
26 // test for equality using Equals method
27 if ( string1.Equals( "hello" ) )
28 output += "string1 equals \"hello\"\n";
29 else
30 output += "string1 does not equal \"hello\"\n";
31
32 // test for equality with ==
33 if ( string1 == "hello" )
34 output += "string1 equals \"hello\"\n";
Ví dụ phương thức
Equals
So sánh giá trị
Unicode trong mỗi
xâu
Toán tử bằng
StringCompare.cs
[...]... cho xâu string1 và string2 StringHashCode.cs Giá trị Hash code của strings “hello” và “Hello” 7.7 Định vị kítựvà một xâu con trong chuỗi Trong nhiều ứng dụng, cần phải tìm một ký tự hay một chuỗi ký tự trong một chuỗi, một văn bản Ví dụ sau đây sẽ cung cấp một số phương thức trên các chuỗi IndexOf IndexOfAny LastIndexOf LastIndexOfAny 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21... tự nào ); "located at " + letters.IndexOfAny( searchLetters đó xuất hiện đầu output += "\nFirst "located at " + tham số đầu tiên trong tham số mảngtiên occurrence of 'c, 'a' or '$' is " + lý tự letters.IndexOfAny( searchLetters, 7 ); output += "\nFirst occurrence of 'c', 'a' or '$' is " + "located at " + letters.IndexOfAny( searchLetters, 20, 5 ); là StringIndexMethods.cs 69 70 71 72 73 74 75 76 77 ... gốc không đổi Method ToLower Chuyển các các ký tự viết hoa thành ký tự thường Xâu gốc không đổi 7. 10 Các phương thức xử lý chuỗi khác Phương thức ToString Gọi để có xâu đại diện cho bất kỳ đối tượng nào Phương thức Trim Bỏ các ký tự trắng Bỏ các ký tự trong tham số mảng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // StringMiscellaneous2.cs //... dài xâu con cần các chỉ tự đặc biệt của ký số bắt đầu } // end method Main } // end class SubString xâu gốccopy một bản số xác sẽ bị SubString.cs 7. 9 Nối, ghép chuỗi Phương thức tĩnh Concat Nhận 2 xâu và trả lại một xâu mới string s3 = string.Concat(s1, s2); Dùng toán tử ‘+’: string s5 = s1 + s2; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // SubConcatination.cs... thành công tham số:ký tự cần tìm và chỉ số ban lại chỉ số của vị in aký tự sẽ trả đầu để occurrence of substring trí string tìm kiếm cần số,ký tự output += "\n'$' is located at index " + IndexOf cần 3 tham tìm,nếu không trả lại giá trị letters.IndexOf( '$', 3, 5 ); -1 cần tìm,chỉ số ban đầu để tìm Nhận ký tự là cần tìm // test LastIndexOf to find a character in a string và số ký tự tham output += "\n\nLast... ); output += "\nLast 'a' is located at index " + letters.LastIndexOf( 'a', 25 ); Các đầu ra này Có 2 tham số:ký tự cần tìm và dùng phương thức chỉ số cao nhất để tìm ngược về LastIndexOf phía sau 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 output += "\nLast '$' is located at index " + letters.LastIndexOf( '$', 15, 5 ); // test IndexOf to locate... Main } // end class StringIndexMethods StringIndexMethods.cs 7. 8 Trích chọn xâu con từchuỗi Phương thức Substring Trích một chuỗi con từ một chuỗi có sẵn Trả về một chuỗi mới Xét ví dụ SubString.cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // SubString.cs // Demonstrating the String Substring method SubString.cs using System; using System.Windows.Forms;... Đảm bảo rằng StringBuilder hiện thời có khả năng tối thiểu lớn như một giá trị xác định •Insert() Chèn một đối tượng vào một vị trí xác định •Replace() Thay thế tất cả thể hiện của một ký tự xác định với những ký tự mới 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 // StringBuilderConstructor.cs // Demonstrating StringBuilder class constructors using System;... string[] args ) { Hàm khởi tạo không tham StringBuilder buffer1, buffer2, buffer3; StringBuilder với kích cỡ string output; số Stringbuilder định là là bội Kích thước khởi tạo 16 khởi đầu mặc không có các Stringbuilder của 2 lớn hơn ký tựvà nhất với số nhỏ kích thước khởi đầu tham số dạng xâu số là 10 tự trong tham số ký string = "buffer1 = \"" + buffer1.ToString() + "\"\n"; Method ToString có đại diện... letters.LastIndexOf( "def", 25 ); IndexOf và LastIndexOf có chức năng tương tự như LastIndexOf và IndexOf Thay vì gửi tham số ký tự, hai phương thức này tìm tham số là xâu con output += "\nLast \"hello\" is located at index " + letters.LastIndexOf( "hello", 20, 15 ); // test IndexOfAny to find first occurrence of character // in array Method IndexOfAny Trả " +chỉ số của ký tự lại output += "\n\nFirst occurrence .
Chương 7 – Chuỗi và kí tự
Outline
7. 1 Giới thiệu về chuỗi và kí tự
7. 2 Khởi tạo chuỗi
7. 4 Chỉ số chuỗi, thuộc tính độ dài Length và phương. CopyTo
7. 5 So sánh chuỗi
7. 6 Phương thức GetHashCode
7. 7 Định vị kí tự và một xâu con trong chuỗi
7. 8 Trích chọn xâu con từ chuỗi
7. 9 Nối, ghép chuỗi
7. 10