ค้นหาความยาวของสตริง

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
    }
}

เข้าใจความแตกต่างหรือไม่? ไม่เพียงแค่ทฤษฎี; มันอาจส่งผลต่อการประมวลผลข้อความในทางที่มีความหมาย

ดูเพิ่มเติม

สำรวจเพิ่มเติมด้วยทรัพยากรเหล่านี้:

รู้จักสตริงของคุณ, จัดการกับพวกมันอย่างมีปัญญา, และเขียนโค้ดที่นับได้ – ในทุกความหมาย