Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การกลับลำดับสตริง (Reverse String) ใน C#

การกลับลำดับสตริงใน C# ทำได้หลายวิธี วิธีที่พบบ่อยคือแปลงเป็นอาร์เรย์ตัวอักษร แล้วใช้ Array.Reverse()

วิธีที่ 1: ใช้ Array.Reverse() (คลาสสิก)

string str = "Amit";
char[] chars = str.ToCharArray();
Array.Reverse(chars);
string reversed = new string(chars); // "timA"

วิธีที่ 2: ใช้ LINQ (กระชับ)

using System.Linq;

string reversed = new string(str.Reverse().ToArray());

วิธีที่ 3: StringBuilder (ประสิทธิภาพดีสำหรับสตริงยาว)

using System.Text;

var sb = new StringBuilder(str.Length);
for (int i = str.Length - 1; i >= 0; i--) {
    sb.Append(str[i]);
}
string reversed = sb.ToString();

ตัวอย่างโค้ดครบถ้วน

using System;
using System.Linq;

class Program {
    static void Main() {
        string str = "Amit";
        
        // วิธี 1
        char[] ch = str.ToCharArray();
        Array.Reverse(ch);
        Console.WriteLine("Array.Reverse: " + new string(ch));
        
        // วิธี 2
        Console.WriteLine("LINQ Reverse: " + new string(str.Reverse().ToArray()));
        
        Console.ReadLine();
    }
}

การกลับลำดับคำ (Word-level Reverse)

หากต้องการกลับลำดับคำ ไม่ใช่ตัวอักษร:

string sentence = "Hello World";
string reversedWords = string.Join(" ", sentence.Split(' ').Reverse());
// ผลลัพธ์: "World Hello"

สรุป

  • สตริงสั้น: ใช้ LINQ str.Reverse() สะดวกที่สุด
  • สตริงยาว/ループบ่อย: ใช้ StringBuilder ป้องกันการสร้างออบเจกต์มากเกินไป
  • Array.Reverse() ทำงานแบบ In-place บนอาร์เรย์