การแปลงอาร์เรย์ตัวอักษร (char[]) เป็นสตริงใน C#
ใน C# สามารถแปลงอาร์เรย์ของตัวอักษร (char[]) เป็นสตริงได้โดยตรงผ่านคอนสตรัคเตอร์ของคลาส string
ตัวอย่างโค้ด
using System;
class Program
{
static void Main()
{
// สร้างอาร์เรย์ตัวอักษร
char[] arr = new char[5];
arr[0] = 'Y';
arr[1] = 'E';
arr[2] = 'S';
// arr[3] และ arr[4] จะเป็น '\0' (null character) โดยอัตโนมัติ
// แปลงเป็นสตริง
string res = new string(arr);
Console.WriteLine($"ผลลัพธ์: '{res}'");
Console.WriteLine($"ความยาว: {res.Length}");
}
}
ผลลัพธ์
ผลลัพธ์: 'YES'
ความยาว: 5
คำอธิบายสำคัญ
- คอนสตรัคเตอร์
new string(char[])จะนำตัวอักษรทั้งหมดในอาร์เรย์มารวมกัน - หากอาร์เรย์มีขนาดใหญ่กว่าจำนวนตัวอักษรที่กำหนด จะมี null character (\0) ต่อท้าย
- สามารถใช้
new string(arr, startIndex, length)เพื่อระบุช่วงที่ต้องการ
วิธีอื่นๆ
// 1. ใช้ string.Join (สำหรับ string[])
string[] strArr = { "Y", "E", "S" };
string result1 = string.Join("", strArr);
// 2. ใช้ StringBuilder (เหมาะสำหรับการต่อสตริงหลายครั้ง)
var sb = new System.Text.StringBuilder();
foreach (char c in arr) sb.Append(c);
string result2 = sb.ToString();
// 3. ใช้ LINQ
string result3 = new string(arr.Where(c => c != '\0').ToArray());
แปลงสตริงกลับเป็น char[]
string str = "HELLO";
char[] charArray = str.ToCharArray();