×

Cách Đảo Ngược Chuỗi Trong C# Dễ Hiểu Nhất

Đảo ngược một chuỗi là một bài toán thường gặp trong lập trình. Trong C#, có nhiều cách để đảo ngược một chuỗi, bao gồm việc sử dụng các lớp và phương thức có sẵn trong .NET Framework hoặc tự triển khai giải thuật đảo ngược.

Phương Pháp 1: Sử Dụng Array.Reverse

Bạn có thể chuyển chuỗi thành một mảng ký tự, sau đó sử dụng phương thức Array.Reverse để đảo ngược mảng và cuối cùng chuyển mảng ký tự đã đảo ngược trở lại thành chuỗi.

using System;

class Program
{
    static void Main()
    {
        string original = "Hello, World!";
        string reversed = ReverseString(original);
        Console.WriteLine($"Original: {original}");
        Console.WriteLine($"Reversed: {reversed}");
    }

    static string ReverseString(string input)
    {
        char[] charArray = input.ToCharArray(); // Chuyển chuỗi thành mảng ký tự
        Array.Reverse(charArray); // Đảo ngược mảng ký tự
        return new string(charArray); // Chuyển mảng ký tự đã đảo ngược trở lại thành chuỗi
    }
}

Phương Pháp 2: Sử Dụng StringBuilder

Bạn có thể sử dụng StringBuilder để xây dựng một chuỗi mới bằng cách duyệt qua chuỗi ban đầu từ cuối đến đầu và thêm từng ký tự vào StringBuilder.

using System;
using System.Text;

class Program
{
    static void Main()
    {
        string original = "Hello, World!";
        string reversed = ReverseString(original);
        Console.WriteLine($"Original: {original}");
        Console.WriteLine($"Reversed: {reversed}");
    }

    static string ReverseString(string input)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = input.Length - 1; i >= 0; i--)
        {
            sb.Append(input[i]);
        }
        return sb.ToString();
    }
}

Phương Pháp 3: Sử Dụng LINQ

Bạn có thể sử dụng LINQ để đảo ngược chuỗi một cách ngắn gọn và dễ đọc.

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        string original = "Hello, World!";
        string reversed = ReverseString(original);
        Console.WriteLine($"Original: {original}");
        Console.WriteLine($"Reversed: {reversed}");
    }

    static string ReverseString(string input)
    {
        return new string(input.Reverse().ToArray());
    }
}

So Sánh Các Phương Pháp

  1. Sử Dụng Array.Reverse: Đây là phương pháp đơn giản và trực quan. Nó sử dụng các phương thức có sẵn trong .NET để chuyển đổi và đảo ngược mảng ký tự.
  2. Sử Dụng StringBuilder: Phương pháp này hiệu quả khi làm việc với các chuỗi lớn vì StringBuilder được thiết kế để tối ưu hóa việc xây dựng chuỗi.
  3. Sử Dụng LINQ: Đây là phương pháp ngắn gọn và dễ đọc nhất, tuy nhiên, nó có thể không hiệu quả bằng các phương pháp khác đối với các chuỗi rất lớn do chi phí của các thao tác LINQ.

Kết Luận

Có nhiều cách để đảo ngược một chuỗi trong C#, từ việc sử dụng các lớp và phương thức có sẵn trong .NET Framework đến việc tự triển khai giải thuật đảo ngược. Việc lựa chọn phương pháp nào phụ thuộc vào ngữ cảnh cụ thể và yêu cầu về hiệu năng của bạn.

Comments