Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex p1 ppt

5 358 0
Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex p1 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

Ngôn Ngữ Lập Trình C# Trả lời 2: Hoàn toàn khác nhau, một mảng chỉ đơn thuần là một đối tượng tham chiếu đến những đối tượng khác cùng kiểu dữ liệu. Trong khi một lớp có bộ chỉ mục thì nó chứa một mảng các giá trị nào đó, và cho phép bên ngoài truy cập mảng này thông qua bộ chỉ mục. Một lớp như vậy không chỉ có một mảng đơn thuần mà còn có những thuộc tính khác, các phương thức Nói chung là nếu ta chỉ cần thao tác đơn thuần trên từng phần riên lẻ của một mảng thì nên dùng mảng. Còn nếu chúng ta cần thực hiện một số chức năng nào đó có liên quan tới một mảng thì ta có thể xây dựng một lớp có chứa một mảng và hỗ trợ bộ chỉ mục. Câu hỏi 3: Giao diện tập hợp là gì? Có phải .NET cung cấp một số giao diện chuẩn hay không? Trả lời 3: Giao diện tập hợp cũng là một giao diện nhưng nó chỉ đưa ra các quy định thao tác trên tập hợp như: so sánh, liệt kê trên tập hợp, tạo các tập hợp NET cung cấp một số giao diện cho tập hợp như: IEnumerable, ICollection, IComparer, IList Câu hỏi thêm Câu hỏi 1: Từ khoá params được sử dụng làm gì? Câu hỏi 2: Ý nghĩa của lệnh lặp foreach? Lệnh này được sử dụng với kiểu dữ liệu nào? Câu hỏi 3: Có mấy kiểu mảng đa chiều trong ngôn ngữ C#. Hãy cho biết từng loại và khi nào thì sử dụng từng loại cho thích hợp. Câu hỏi 4: Cách tạo ra mảng đa chiều không cùng kích thước? Câu hỏi 5: Hãy cho biết sự khác nhau giữa hai cách gọi Arr[i][j] và Arr[i, j]? Câu hỏi 6: Có thể dùng lệnh foreach để xuất ra tất cả các thành phần của mảng đa chiều không cùng kích thước hay không? Nếu được thì phải làm như thế nào? Câu hỏi 7: Kiểu dữ liệu nào có thể làm chỉ mục trong bộ chỉ mục của một lớp? Câu hỏi 8: Làm thế nào để biết kích thước của một mảng? Câu hỏi 9: Liệt kê những giao diện tập hợp mà .NET cung cấp? Cho biết ý nghĩa của từng giao diện? Câu hỏi 10: Có cách nào tạo một mảng mà không cần khai báo trước kích thước của mảng? Và trong quá trình thực hiện trên mảng chúng ta có thể tăng động kích thước của mảng hay không? Câu hỏi 11: Nếu mảng có 31 phần tử thì dung lượng của đối tượng ArrayList là bao nhiêu? Trường hợp có 33 phần tử? Câu hỏi 12: Hàng đợi là gì? Chúng được sắp xếp theo kiểu thứ tự nào? Ứng dụng của hàng đợi ? Câu hỏi 13: Ngăn xếp là gì? Chúng được sắp xếp theo kiểu thứ tự nào? Ứng dụng của ngăn xếp? Câu hỏi 14: Phương thức Peek() trong hàng đợi và ngăn xếp có ý nghĩa gì? Câu hỏi 15: Kiểu dữ liệu nào cho phép truy cập một giá trị thông qua khóa của nó? Lớp nào trong .NET hỗ trợ kiểu dữ liệu này? Mảng, Chỉ Mục, và Tập Hợp 273 Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex Ngôn Ngữ Lập Trình C# Câu hỏi 16: Cách lấy tập giá trị trong một đối tượng Hashtable? Câu hỏi 17: Cách lấy tập khóa trong một đối tượng Hastable? Câu hỏi 18: Khóa có phải là duy nhất trong một Hastable hay không? Câu hỏi 19: Nếu hai vùng có chung một khóa thì chúng được tìm kiếm theo kiểu nào? Và tốc độ tìm kiếm? Câu hỏi 20: Hashtable thực thi các giao diện tập hợp nào? Câu hỏi 21: Phương thức nào thực hiện việc tạo các khoá trong một Hashtable? Bài tập Bài tập 1: Viết một chương trình tạo một mảng một chiều nguyên chứa giá trị ngẫu nhiên. Sắp xếp các thành phần trong mảng theo thứ tự tăng dần và hiển thị kết quả. Làm tương tự với trường hợp sắp xếp mảng theo thứ tự giảm dần. Bài tập 2: Viết một chương trình tạo một mảng một chiều nguyên chứa giá trị ngẫu nhiên. Sắp xếp chúng theo thứ tự số âm thì tăng còn số dương thì giảm dần. Hiển thị kết quả ra màn hình. Bài tập 3: Viết một chương trình tìm số lớn nhất và nhỏ nhất trong mảng hai chiều có kích thước cố định. Các thành phần của mảng được phát sinh ngẫu nhiên. Bài tập 4: Viết chương trình cộng hai ma trận nxm, tức là mảng hai chiều có kích thước n dòng, m cột. Các giá trị của hai mảng phát sinh ngẫu nhiên, cho biết kết quả cộng hai ma trận? Bài tập 4: Viết chương trình cho phép người dùng nhập vào một ma trận nxm, sao đó tìm kiếm một giá trị nào đó theo yêu cầu người dùng, kết quả của việc tìm kiếm là giá trị và thứ tự của giá trị tìm được trong ma trận. Bài tập 5: Viết chương trình tạo một mảng hai chiều không cùng kích thước. Cố định số dòng của mảng là 5, còn từng dòng có kích thước bằng giá trị của dòng, tứ là dòng thứ nhất có kích thước 1 (tức là có 1 cột), dòng thứ hai có kích thước là 2 (tức là 2 cột) Các giá trị phát sinh ngẫu nhiên. Hãy xuất kết quả của ma trận theo kiểu sau: a[i][j] = <giá trị aij> Việc xuất kết quả của ma trận trên có thể thực hiện bằng vòng lặp foreach được không? Nếu được thì hãy viết đoạn chương trình xuất ra kết quả? Bài tập 6: Viết chương trình tạo ra một mảng lưu trữ 30 điểm số của học sinh. Tính trung bình điểm của tất cả học sinh. Xuất kết quả từng điểm và điểm trung bình. Bài tập 7: Viết một chương trình tạo ra một lớp tên là LopHoc, trong đó có khai báo bộ chỉ mục chỉ đến tên của từng học viên trong lớp. Cho phép một lớp có tối đa 30 học viên. Tạo chương trình minh họa cho phép người dùng nhập vào tên của từng học viên. Xuất kết quả danh sánh học viên của lớp thông qua bộ chỉ mục. Mảng, Chỉ Mục, và Tập Hợp 274 Ngôn Ngữ Lập Trình C# Bài tập 8: Viết chương trình sử dụng ArrayList để tạo một mảng. Chương trình tạo ra một vòng lặp cho phép người dùng nhập vào các giá trị cho mảng. Hãy xuất kết quả mảng cùng với giá trị Count, và Capacity của mảng. Ta có thể thiết lập giá trị Capacity nhỏ hơn giá trị Count được không? Bài tập 9: Viết chương trình tạo ra đối tượng Queue tên là myQueue. Khởi tạo myQueue có 5 giá trị ngẫu nhiên. Hãy thực hiện các bước sau, mỗi bước thực hiện phải xuất tình trạng của myQueue: 1. Lấy một giá trị ra. 2. Lấy tiếp một giá trị nữa. 3. Xem một giá trị ở đầu queue. 4. Đưa vào queue một giá trị. Bài tập 10: Viết chương trình tạo đối tượng Stack tên là myStack. Khởi tạo myStack có 5 giá trị ngẫu nhiên. Hãy thực hiện các bước sau, mỗi bước thực hiện phải xuất tình trạng của myStack: 1. Lấy một giá trị ra. 2. Lấy tiếp một giá trị nữa. 3. Xem một giá trị ở đầu stack. 4. Đưa vào stack một giá trị. Bài tập 11: Viết chương trình sử dụng kiểu dữ liệu từ điển để quản lý thông tin của một lớp học. Trong đó khóa là chuỗi mã số học viên còn giá trị là tên của học viên. Viết chương trình minh họa cho phép nhập vào 10 học viên, và cho phép người dùng tìm kiếm tên của học viên thông qua mã số học viên. Mảng, Chỉ Mục, và Tập Hợp 275 Ngôn Ngữ Lập Trình C# Chương 10 XỬ LÝ CHUỖI  Lớp đối tượng string  Tạo một chuỗi  Tạo chuỗi dùng phương thức ToString  Thao tác trên chuỗi  Tìm một chuỗi con  Chia chuỗi  Thao tác trên chuỗi dùng StringBuilder  Các biểu thức quy tắc  Sử dụng biểu thức quy tắc qua lớp Regex  Sử dụng Regex để tìm tập hợp  Sử dụng Regex để gom nhóm  Sử dụng lớp CaptureCollection  Câu hỏi & bài tập Có một thời gian người ta luôn nghĩ rằng máy tính chỉ dành riêng cho việc thao tác các giá trị dạng số. Các máy tính đầu tiên là được thiết kế để sử dụng tính toán số lượng lớn như tính toán quỹ đạo của tên lửa trong quốc phòng. Và ngôn ngữ lập trình được giảng dạy ở khoa toán của các đại học lớn. Ngày nay, hầu hết các chương trình liên quan đến nhiều chuỗi ký tự hơn là các chuỗi các con số. Thông thường các chuỗi được sử dụng cho việc xử lý từ ngữ, thao tác trên các sưu liệu, và tạo ra các trang web. Ngôn ngữ C# hỗ trợ khá đầy đủ các chức năng của kiểu chuỗi mà chúng ta có thể thấy được ở các ngôn ngữ lập trình cấp cao khác. Điều quan trọng hơn là ngôn ngữ C# xem những chuỗi như là những đối tượng và được đóng gói tất cả các thao tác, sắp xếp, và các phương thức tìm kiếm thường được áp dụng cho chuỗi ký tự. Những thao tác chuỗi phức tạp và so khớp mẫu được hỗ trợ bởi việc sử dụng các biểu thức quy tắc (regular expression). Ngôn ngữ C# kết hợp sức mạnh và sự phức tạp của cú pháp biểu Xử Lý Chuỗi 276 Ngôn Ngữ Lập Trình C# thức quy tắc, (thông thường chỉ được tìm thấy trong các ngôn ngữ thao tác chuỗi như Awk, Perl), với một thiết kế hướng đối tượng đầy đủ. Trong chương 10 này chúng ta sẽ học cách làm việc với kiểu dữ liệu string của ngôn ngữ C#, kiểu string này chính là một alias của lớp System.String của .NET Framework. Chúng ta cũng sẽ thấy được cách rút trích ra chuỗi con, thao tác và nối các chuỗi, xây dựng một chuỗi mới với lớp StringBuilder. Thêm vào đó, chúng ta sẽ được học cách sử dụng lớp Regex để so khớp các chuỗi dựa trên biểu thức quy tắc phức tạp. Lớp đối tượng String C# xem những chuỗi như là những kiểu dữ liệu cơ bản tức là các lớp này rất linh hoạt, mạnh mẽ, và nhất là dễ sử dụng. Mỗi đối tượng chuỗi là một dãy cố định các ký tự Unicode. Nói cách khác, các phương thức được dùng để làm thay đổi một chuỗi thực sự trả về một bản sao đã thay đổi, chuỗi nguyên thủy không thay đổi. Khi chúng ta khai báo một chuỗi C# bằng cách dùng từ khóa string, là chúng ta đã khai báo một đối tượng của lớp System.String, đây là một trong những kiểu dữ liệu được xây dựng sẵn được cung cấp bởi thư viện lớp .NET (.NET Framework Class Library). Do đó một kiểu dữ liệu chuỗi C# là kiểu dữ liệu System.String, và trong suốt chương này dùng hai tên hoán đổi lẫn nhau. Khai báo của lớp System.String như sau: public sealed class String : IComparable, ICloneble, IConvertible Khai báo này cho thấy lớp String đã được đóng dấu là không cho phép kế thừa, do đó chúng ta không thể dẫn xuất từ lớp này được. Lớp này cũng thực thi ba giao diện hệ thống là IComparable, ICloneable, và IConvertible – giao diện này cho phép lớp System.String chuyển đổi với những lớp khác trong hệ thống .NET. Như chúng ta đã xem trong chương 9, giao diện IComparable được thực thi bởi các kiểu dữ liệu đã được sắp xếp. Ví dụ như chuỗi thì theo cách sắp xếp Alphabe. Bất cứ chuỗi nào đưa ra cũng có thể được so sánh với chuỗi khác để chỉ ra rằng chuỗi nào có thứ tự trước. Những lớp IComparable thực thi phương thức CompareTo(). Những đối tượng ICloneable có thể tạo ra những thể hiện khác với cùng giá trị như là thể hiện nguyên thuỷ. Do đó ta có thể tạo ra một chuỗi mới từ chuỗi ban đầu và giá trị của chuỗi mới bằng với chuỗi ban đầu. Những lớp ICloneable thực thi phương thức Clone(). Những lớp IConvertible cung cấp phương thức để dễ dàng chuyển đổi qua các kiểu dữ liệu cơ bản khác như là ToInt32(), ToDouble(), ToDecimal(), Tạo một chuỗi Cách phổ biến nhất để tạo ra một chuỗi là gán cho một chuỗi trích dẫn tức là chuỗi nằm trong dấu ngoặc kép, kiểu chuỗi này cũng được biết như là một chuỗi hằng, khai báo như sau: string newString = “Day la chuoi hang”; Những chuỗi trích dẫn có thể được thêm các ký tự escape, như là “\n” hay “\t”, ký tự này bắt đầu với dầu chéo ngược (“\”), các ký tự này được dùng để chỉ ra rằng tại vị trí đó xuống dòng Xử Lý Chuỗi 277 . phương thức ToString  Thao tác trên chuỗi  Tìm một chuỗi con  Chia chuỗi  Thao tác trên chuỗi dùng StringBuilder  Các biểu thức quy tắc  Sử dụng biểu thức quy tắc qua lớp Regex  Sử dụng Regex. thông qua khóa của nó? Lớp nào trong .NET hỗ trợ kiểu dữ liệu này? Mảng, Chỉ Mục, và Tập Hợp 273 Giáo trình hướng dẫn tạo chuỗi dùng phương thức Tostring sử dụng biểu thức quy tắc qua lớp regex Ngôn. sẽ được học cách sử dụng lớp Regex để so khớp các chuỗi dựa trên biểu thức quy tắc phức tạp. Lớp đối tượng String C# xem những chuỗi như là những kiểu dữ liệu cơ bản tức là các lớp này rất linh

Ngày đăng: 26/07/2014, 04:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan