การกลับลำดับสตริงใน 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 บนอาร์เรย์