C#:
ค้นหาความยาวของสตริง
วิธีการ:
ใน C#, คุณสมบัติ string.Length
ให้คุณทราบจำนวนอักขระในสตริง นี่คือวิธีใช้งาน:
using System;
class Program
{
static void Main()
{
string example = "Hello, World!";
Console.WriteLine(example.Length); // ผลลัพธ์: 13
}
}
ง่าย, ใช่ไหม? แต่จำไว้ว่า, มันนับ อักขระ ไม่ใช่ไบต์ กับอีโมจิหรืออักขระพิเศษ, สถานการณ์อาจซับซ้อนขึ้น จะอธิบายเพิ่มเติมในภายหลัง
ลงลึก
ในอดีต, การหาความยาวของสตริงเกี่ยวข้องกับการจัดการและการจัดการหน่วยความจำในการเขียนโปรแกรม เนื่องจาก C# เป็นภาษาระดับสูง, มันทำให้การทำงานระดับต่ำเหล่านั้นหายไป อย่างไรก็ตาม, การรู้ว่ามีอะไรอยู่ใต้ฝาครอบก็ดี
มีทางเลือกอื่นหรือ? แน่นอน! คุณอาจเห็น example.ToCharArray().Length
อยู่ในโค้ดทั่วไป, แต่มันเป็นเพียงการทำงานเพิ่มเติมเพื่อผลลัพธ์เดียวกัน
ตอนนี้, เกี่ยวกับอักขระที่ซับซ้อน เช่น C# คุณสมบัติ Length
นับจำนวน char
ออบเจกต์ของสตริง, แต่ละตัวแทนหน่วยรหัส UTF-16 นั่นโอเคจนกระทั่งคุณพบกับ คู่ surrogate – อักขระเช่นอีโมจิที่ต้องการสอง char
ออบเจกต์ นี่คือสิ่งที่: Length
นับพวกมันเป็นสอง ใช่แล้ว
สำหรับการนับที่แม่นยำของ อักขระที่เห็นได้ชัด หรือ กลุ่มกราฟีม, คุณจะต้องหันไปใช้คลาส StringInfo
ของ System.Globalization:
using System;
using System.Globalization;
class Program
{
static void Main()
{
string example = "👍"; // อิโมจิชูมือ
Console.WriteLine(example.Length); // ผลลัพธ์: 2 <- เพราะคู่ surrogate!
Console.WriteLine(new StringInfo(example).LengthInTextElements); // ผลลัพธ์: 1
}
}
เข้าใจความแตกต่างหรือไม่? ไม่เพียงแค่ทฤษฎี; มันอาจส่งผลต่อการประมวลผลข้อความในทางที่มีความหมาย
ดูเพิ่มเติม
สำรวจเพิ่มเติมด้วยทรัพยากรเหล่านี้:
- เอกสารอ้างอิงอย่างเป็นทางการของ Microsoft เกี่ยวกับสตริง
- การเข้าใจ Unicode และ UTF-16
- เอกสารของคลาส StringInfo
รู้จักสตริงของคุณ, จัดการกับพวกมันอย่างมีปัญญา, และเขียนโค้ดที่นับได้ – ในทุกความหมาย