Hướng dẫn cơ bản về chuỗi trong C

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ cùng khám phá thế giới kỳ diệu của chuỗi trong C#. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - tôi sẽ là người hướng dẫn thân thiện của bạn trong hành trình này. Hãy bắt đầu nào!

C# - Strings

什么是字符串?

Trước khi chúng ta nhảy vào chi tiết, hãy hiểu chuỗi là gì. Trong lập trình, chuỗi đơn giản là một序列 các ký tự. Nó có thể là một từ, một câu hoặc thậm chí cả một đoạn văn. Hãy tưởng tượng nó như một "dây" các chữ cái, số hoặc ký hiệu được nối lại với nhau.

Tạo đối tượng chuỗi

Trong C#, việc tạo chuỗi rất đơn giản. Hãy cùng nhìn qua một vài cách để làm điều đó:

string问候 = "Hello, World!";
string名字 = "Alice";
string空字符串 = "";
string空字符串 = null;

Trong các ví dụ này:

  • 问候 là một chuỗi chứa "Hello, World!"
  • 名字 là một chuỗi chứa "Alice"
  • 空字符串 là một chuỗi trống (nó tồn tại nhưng không có ký tự nào)
  • 空字符串 là một chuỗi null (nó thậm chí không tồn tại trong bộ nhớ)

Lưu ý, các chuỗi trong C# được bao quanh bởi dấu ngoặc kép. Nếu bạn cố gắng sử dụng dấu ngoặc đơn, C# sẽ nghĩ rằng bạn đang nói về một ký tự duy nhất, không phải là chuỗi.

Các thuộc tính của lớp Chuỗi

Các chuỗi trong C# có một số thuộc tính内置 có thể rất hữu ích. Hãy cùng khám phá một vài thuộc tính:

Length

Thuộc tính Length cho chúng ta biết có bao nhiêu ký tự trong một chuỗi.

string thôngĐiệp = "Hello, C#!";
int độDài = thôngĐiệp.Length;
Console.WriteLine($"Thông điệp có {độDài} ký tự.");
// Output: Thông điệp có 9 ký tự.

Empty và IsNullOrEmpty

Đôi khi, chúng ta cần kiểm tra xem một chuỗi có trống không. C# cung cấp các cách thuận tiện để làm điều này:

string chuỗiTrống = "";
bool isEmpty = string.Empty == chuỗiTrống;
bool isNullOrEmpty = string.IsNullOrEmpty(chuỗiTrống);

Console.WriteLine($"Chuỗi có trống không? {isEmpty}");
Console.WriteLine($"Chuỗi null hoặc trống không? {isNullOrEmpty}");
// Output:
// Chuỗi có trống không? True
// Chuỗi null hoặc trống không? True

Các phương thức của lớp Chuỗi

Bây giờ, hãy đến phần thú vị - các phương thức chuỗi! Đây giống như những siêu năng lực mà chuỗi có, cho phép chúng ta manipulatie và phân tích chúng theo nhiều cách khác nhau.

ToUpper() và ToLower()

Những phương thức này thay đổi chữ cái trong chuỗi:

string hỗnHợp = "HeLLo, WoRLd!";
string viết Hoa = hỗnHợp.ToUpper();
string viết Thường = hỗnHợp.ToLower();

Console.WriteLine(viết Hoa); // Output: HELLO, WORLD!
Console.WriteLine(viết Thường); // Output: hello, world!

Trim(), TrimStart(), và TrimEnd()

Những phương thức này loại bỏ khoảng trắng từ chuỗi:

string chuỗiĐệm = "   Hello, World!   ";
string xén = chuỗiĐệm.Trim();
string xénDau = chuỗiĐệm.TrimStart();
string xénCuoi = chuỗiĐệm.TrimEnd();

Console.WriteLine($"Xén: '{xén}'");
Console.WriteLine($"Xén Đầu: '{xénDau}'");
Console.WriteLine($"Xén Cuối: '{xénCuoi}'");
// Output:
// Xén: 'Hello, World!'
// Xén Đầu: 'Hello, World!   '
// Xén Cuối: '   Hello, World!'

Substring()

Phương thức này cho phép chúng ta trích xuất một phần của chuỗi:

string câu = "The quick brown fox jumps over the lazy dog.";
string tríchDẫn = câu.Substring(4, 5);
Console.WriteLine(tríchDẫn); // Output: quick

IndexOf() và LastIndexOf()

Những phương thức này giúp chúng ta tìm vị trí của một ký tự hoặc chuỗi con:

string vănBản = "Hello, Hello, Hello";
int vịTríĐầu = vănBản.IndexOf("Hello");
int vịTríCuối = vănBản.LastIndexOf("Hello");

Console.WriteLine($"'Hello' đầu tiên ở vị trí: {vịTríĐầu}");
Console.WriteLine($"'Hello' cuối cùng ở vị trí: {vịTríCuối}");
// Output:
// 'Hello' đầu tiên ở vị trí: 0
// 'Hello' cuối cùng ở vị trí: 14

Replace()

Phương thức này thay thế các lần xuất hiện của một chuỗi cụ thể:

string gốc = "I like apples, apples are my favorite fruit.";
string thayThế = gốc.Replace("apples", "oranges");
Console.WriteLine(thayThế);
// Output: I like oranges, oranges are my favorite fruit.

Dưới đây là bảng tóm tắt các phương thức này:

Phương thức Mô tả
ToUpper() Chuyển tất cả các ký tự thành chữ cái in hoa
ToLower() Chuyển tất cả các ký tự thành chữ cái thường
Trim() Loại bỏ khoảng trắng từ hai đầu
TrimStart() Loại bỏ khoảng trắng từ đầu
TrimEnd() Loại bỏ khoảng trắng từ cuối
Substring() Trích xuất một phần của chuỗi
IndexOf() Tìm vị trí lần xuất hiện đầu tiên của một chuỗi con
LastIndexOf() Tìm vị trí lần xuất hiện cuối cùng của một chuỗi con
Replace() Thay thế tất cả các lần xuất hiện của một chuỗi cụ thể

Các ví dụ trong hành động

Bây giờ, khi chúng ta đã học về các thuộc tính và phương thức chuỗi, hãy cùng áp dụng chúng vào một ví dụ thực tế:

string đầuVàoNgườiDùng = "   JoHn DoE   ";

// Dọn dẹp và chuẩn hóa đầu vào
string tênSạch = đầuVàoNgườiDùng.Trim().ToLower();

// Viết hoa chữ cái đầu tiên của mỗi từ
string[] phầnTên = tênSạch.Split(' ');
for (int i = 0; i < phầnTên.Length; i++)
{
if (!string.IsNullOrEmpty(phầnTên[i]))
{
phầnTên[i] = char.ToUpper(phầnTên[i][0]) + phầnTên[i].Substring(1);
}
}

string tênĐịnhDạng = string.Join(" ", phầnTên);

Console.WriteLine($"Đầu vào gốc: '{đầuVàoNgườiDùng}'");
Console.WriteLine($"Tên định dạng: '{tênĐịnhDạng}'");
// Output:
// Đầu vào gốc: '   JoHn DoE   '
// Tên định dạng: 'John Doe'

Trong ví dụ này, chúng ta lấy một đầu vào người dùng hỗn loạn, dọn dẹp nó, chuyển nó thành chữ thường và sau đó viết hoa chữ cái đầu tiên của mỗi từ. Đây là một nhiệm vụ phổ biến trong nhiều ứng dụng, như xử lý biểu mẫu hoặc làm sạch dữ liệu.

Kết luận

Chúc mừng! Bạn đã chính thức bước vào thế giới của chuỗi trong C#. Chúng ta đã bao gồm tạo chuỗi, sử dụng các thuộc tính và áp dụng nhiều phương thức để manipulatie chúng. Nhớ rằng, thực hành là cách tốt nhất để trở nên thành thạo, vì vậy đừng ngần ngại thử nghiệm với các khái niệm này trong mã của riêng bạn.

Chuỗi là một trong những kiểu dữ liệu được sử dụng phổ biến nhất trong lập trình, và việc thành thạo chúng sẽ cho bạn một nền tảng vững chắc cho hành trình lập trình của bạn. Hãy tiếp tục khám phá, tiếp tục lập trình và quan trọng nhất, hãy vui vẻ với nó!

Chúc các bạn lập trình vui vẻ, những nhà vô địch C# tương lai!

Credits: Image by storyset