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

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

วิธีทำ:

ใน TypeScript, คุณสามารถหาความยาวของสตริงได้โดยใช้คุณสมบัติ .length นี่คือตัวอย่าง:

let greeting: string = "Hello, TypeScript!";
console.log(greeting.length); // ผลลัพธ์: 18

รหัสนี้ประกาศตัวแปรสตริงที่ชื่อว่า greeting แล้วจากนั้นจะแสดงความยาวของมันออกทางคอนโซล

การดำดิ่งลึก

คุณสมบัติ .length เป็นการสืบทอดมาจาก JavaScript, ซึ่งเป็นภาษาแม่ของ TypeScript เป็นวิธีที่ตรงไปตรงมาและได้รับการสนับสนุนอย่างทั่วถึงในการเอาขนาดของสตริง

มีวิธีอื่นๆ แต่มักจะทำให้สิ่งต่างๆ ซับซ้อนขึ้น เช่น คุณอาจจะแปลงสตริงเป็นอาร์เรย์และนับสมาชิก:

let greetingArray: string[] = Array.from(greeting);
console.log(greetingArray.length); // ผลลัพธ์: 18

แต่ทำไมต้องเลือกวิธีที่ยากลำบาก? คุณสมบัติ .length เป็นวิธีที่มีประสิทธิภาพเนื่องจากสตริงถูกเก็บเป็นอาร์เรย์ของตัวอักขระโดยพื้นฐาน, ดังนั้นข้อมูลความยาวจึงสามารถเข้าถึงได้อย่างง่ายดาย

ตอนนี้, สมมติว่าคุณกำลังจัดการกับสตริงจากภาษาต่างๆ คุณอาจเจอปัญหากับตัวอักขระพิเศษ วิธีการ .length พื้นฐานนับ UTF-16 code units, ซึ่งอาจจะมีปัญหาสำหรับตัวอักขระที่ต้องการสอง code units, ที่เรียกว่าคู่ surrogate ในกรณีเช่นนี้, คุณสมบัติ .length อาจไม่ให้คุณนับจำนวนอักขระจริง หรือที่เรียกว่า code points

นี่คือวิธีที่คุณสามารถจัดการกับสตริงที่มีคู่ surrogate:

function countCodePoints(str: string): number {
    return Array.from(str).length;
}

let fancyGreeting: string = "Hello, 🌍!";
console.log(countCodePoints(fancyGreeting)); // ผลลัพธ์: 9

ฟังก์ชันนี้จัดการกับความซับซ้อนของการเข้ารหัสสตริงเพื่อให้แน่ใจว่าแต่ละตัวอักขระ ไม่ว่าจะเป็นคู่ที่เป็นหน่วยโค้ดเดียวหรือสองหน่วยโค้ด, ถูกนับอย่างถูกต้อง

ดูเพิ่มเติม