Bài viết trước đó đã giới thiệu về mảng trong C#. Trong bài viết này, Mytour và bạn sẽ đào sâu hơn về khái niệm chuỗi (string) trong ngôn ngữ lập trình C#.
Chuỗi (string) trong C# là một cảm giác như thế nào?
1. Chuỗi (string) trong C# là gì?
2. Đặc điểm nổi bật của chuỗi trong C#.
3. Sự phân biệt giữa chuỗi (string) và System.String.
4. Mảng chuỗi.
5. Đọc chuỗi từ đầu vào người dùng.
6. Các phương pháp tạo chuỗi trong C#.
6.1. Tạo một chuỗi từ literal.
6.2. Tạo chuỗi bằng toán tử nối chuỗi.
6.3. Tạo chuỗi sử dụng constructor.
6.4. Tạo chuỗi bằng thuộc tính hoặc phương thức.
6.5. Tạo chuỗi bằng Format.
7. Thuộc tính của lớp String trong C#.
1. Chuỗi (string) trong C# là gì?
Trong ngôn ngữ lập trình C#, chuỗi (string) là một chuỗi ký tự Unicode hoặc một mảng các ký tự. Phạm vi của ký tự Unicode từ U +0000 đến U +FFFF. Mảng các ký tự được gọi là văn bản, vì vậy chuỗi là biểu diễn của văn bản.
Thường ta thường nhầm lẫn và hiểu sai chuỗi (string) là một từ khóa hay một đối tượng, một lớp. Vì thế, để hiểu rõ hơn về chuỗi trong C#, mời bạn đọc đến phần nội dung tiếp theo dưới đây.
Chuỗi được biểu diễn bởi lớp System.String. Từ khóa 'string' là một biệt danh của lớp System.String. Thay vì sử dụng System.String, chúng ta có thể viết là String, là một viết tắt của lớp System.String. Nói chung, chuỗi và String đều là các bí danh của lớp System.String. Do đó, chuỗi là một đối tượng thuộc lớp System.String.
Ví dụ:
Dưới đây là một ví dụ về chuỗi trong C#:
Lớp String được định nghĩa trong thư viện lớp dựa trên .NET. Nói một cách khác, đối tượng String là một tập hợp các đối tượng System.Char đại diện cho một chuỗi.
Kích thước tối đa của đối tượng String trong bộ nhớ là 2GB hoặc khoảng 1 tỷ ký tự. Lớp System.String là không thể thay đổi, có nghĩa là sau khi đã được tạo ra, trạng thái của nó không thể bị thay đổi.
Chương trình:
Kết quả đầu ra sẽ có dạng:
2. Đặc điểm của chuỗi trong C#
- Là một loại tham chiếu.
- Là không thể thay đổi (immutable).
- Có khả năng chứa giá trị null.
- Sử dụng toán tử (==).
3. Sự khác biệt giữa chuỗi (string) và System.String
Chuỗi là một tên gọi khác của System.String. Cả chuỗi và System.String đều có ý nghĩa giống nhau, và không ảnh hưởng đến hiệu suất của ứng dụng. 'string' là một từ khóa trong C#. Do đó, sự khác biệt duy nhất giữa chuỗi (string) và System.String phụ thuộc vào từng ngữ cảnh cụ thể.
- Sử dụng chuỗi để khai báo, trong khi System.String sử dụng để truy cập các phương thức chuỗi tĩnh.
- Sử dụng chuỗi để định nghĩa các trường, thuộc tính, ... với kiểu System.String đã được định nghĩa trước.
- Các phương thức của lớp System.String như String.SubString, String.IndexOf, ... là bắt buộc khi xử lý chuỗi. Chuỗi chỉ là một biệt danh của System.String.
Lưu ý: Trong .NET, văn bản được lưu trữ dưới dạng một tập hợp tuần tự các đối tượng Char để không có ký tự null nào kết thúc ở cuối chuỗi C#. Do đó, chuỗi C# có thể chứa bất kỳ số lượng ký tự null nào được nhúng (' 0,).
4. Mảng chuỗi
Thêm vào đó, chúng ta có thể tạo ra mảng chuỗi và gán các giá trị cho nó. Các mảng chuỗi có thể được tạo ra theo cú pháp sau đây:
Cách viết:
Chuỗi [] mang_chuoi = new chuỗi[do_dai_cua_mang]
Ví dụ:
Dưới đây là một ví dụ minh họa về cách tạo và gán giá trị cho một mảng chuỗi:
Kết quả xuất ra sẽ có dạng như sau:
5. Nhập chuỗi từ người dùng
Chúng ta có thể nhập chuỗi từ người dùng bằng cách sử dụng phương thức ReadLine() của lớp console để đọc một chuỗi từ đầu vào người dùng.
Ví dụ minh họa:
Input:
Kết quả xuất ra sẽ có dạng như sau:
6. Phương pháp để tạo chuỗi trong ngôn ngữ lập trình C#
- Tạo một chuỗi từ literal.
- Tạo chuỗi bằng cách sử dụng toán tử nối chuỗi.
- Tạo chuỗi bằng cách sử dụng constructor.
- Tạo chuỗi thông qua thuộc tính hoặc phương thức.
- Tạo chuỗi bằng cách sử dụng Format.
6.1. Tạo chuỗi từ biểu tượng
Đây là phương pháp phổ biến nhất để tạo ra một chuỗi. Trong trường này, người tạo chuỗi chỉ cần đặt tên cho biến chuỗi và gán giá trị bằng cách đặt nó trong dấu ngoặc kép. Có thể sử dụng bất kỳ loại ký tự nào trong dấu ngoặc kép, trừ một số ký tự đặc biệt như dấu ().
Mã nguồn: dưới đây là ví dụ minh họa về việc tạo chuỗi bằng biểu tượng:
Kết quả xuất ra sẽ có dạng như sau:
6.2. Tạo chuỗi sử dụng toán tử nối chuỗi
Chúng ta có thể tạo chuỗi bằng cách sử dụng toán tử nối chuỗi '+' trong C#. Để tạo một chuỗi tùy ý bằng cách kết hợp các biến chuỗi và biểu tượng, toán tử nối chuỗi (+) được sử dụng để kết hợp hoặc gộp nhất một hoặc nhiều chuỗi.
Mã nguồn: dưới đây là ví dụ minh họa tạo chuỗi bằng toán tử nối chuỗi:
Kết quả xuất ra sẽ có dạng như sau:
GeeksForGeeks
6.3. Tạo chuỗi sử dụng constructor
Lớp chuỗi đã được thiết kế với nhiều constructor, nhận đầu vào là một mảng ký tự hoặc byte. Một số constructor cho phép truyền con trỏ tới mảng ký tự hoặc mảng byte đã được ký hiệu làm tham số.
Mã nguồn: dưới đây là ví dụ minh họa tạo chuỗi bằng constructor:
Kết quả xuất ra sẽ có dạng như sau:
6.4. Tạo chuỗi bằng thuộc tính hoặc phương thức
Để truy xuất thuộc tính hoặc gọi một phương thức sẽ luôn trả về một chuỗi. Ví dụ, sử dụng phương thức của lớp String (chuỗi) để trích xuất một phần của chuỗi lớn.
Mã nguồn: dưới đây là ví dụ minh họa tạo chuỗi bằng thuộc tính hoặc phương thức.
Kết quả xuất ra sẽ có dạng:
For
6.5. Tạo chuỗi bằng Format
Phương thức Format được sử dụng để chuyển đổi giá trị hoặc đối tượng thành chuỗi. Phương thức String.Format trả về một chuỗi.
Mã nguồn: dưới đây là ví dụ minh họa tạo chuỗi bằng phương thức Format:
Kết quả xuất ra sẽ có dạng như sau:
10 Chiếc xe BMW có màu Đỏ
7. Thuộc tính của lớp String trong C#
Lớp String trong C# có 2 thuộc tính chính:
- Chars: Dùng để lấy đối tượng Char tại vị trí chỉ định trong đối tượng String hiện tại.
- Length: Sử dụng để lấy số lượng ký tự trong đối tượng String hiện tại.
Trong bài viết này, Mytour đã hướng dẫn chi tiết về khái niệm chuỗi (string) trong ngôn ngữ lập trình C#. Nếu bạn có bất kỳ thắc mắc hoặc câu hỏi nào, ví dụ như Vòng lặp trong C# là gì, hãy để lại ý kiến của bạn trong phần bình luận dưới bài viết. Mytour sẽ nhanh chóng giải đáp mọi thắc mắc của bạn.