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

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

วิธีทำ:

ใน Lua, คุณสามารถดึงความยาวของสตริงด้วยตัวดำเนินการ # ง่ายและรวดเร็ว

local myString = "Hello, Lua!"
print(#myString)  -- ผลลัพธ์: 11

ถ้าสตริงของคุณมีตัวอักขระขึ้นบรรทัดใหม่หรือเป็นสตริงว่างล่ะ?

local stringWithNewline = "Hello\nLua!"
local emptyString = ""
print(#stringWithNewline)  -- ผลลัพธ์: 10
print(#emptyString)         -- ผลลัพธ์: 0

แม้ว่าจะมีตัวอักขระขึ้นบรรทัดใหม่, Lua นับทุกตัวอักขระ และใช่, สตริงที่ว่างมีความยาวเป็น 0

ลงลึก

ในอดีต, สตริงในบางภาษานั้นยากกว่านี้ คุณอาจจะต้องใช้ฟังก์ชันหรือเมทอดเพื่อหาความยาวของสตริง วันนี้, ใน Lua, มันง่ายดายมากแค่ใช้ตัวดำเนินการ #

ทางเลือก? หากคุณกำลังจัดการกับอักขระ Unicode, ตัวดำเนินการ # อาจทำคุณเหนื่อยกับอักขระหลายไบต์ ในกรณีนั้น, คุณอาจจะสำรวจไลบรารีเช่น utf8 Lua เวอร์ชัน 5.3 เป็นต้นไปได้นำเสนอไลบรารีนี้เป็นส่วนหนึ่งของตัวเอง

local unicodeString = "こんにちは" -- นั่นคือ "Hello" ในภาษาญี่ปุ่น
print(#unicodeString)  -- ผลลัพธ์อาจทำให้คุณแปลกใจถ้าคุณไม่พร้อมสำหรับอักขระหลายไบต์!
print(utf8.len(unicodeString))  -- ผลลัพธ์: 5 ตัวอักขระตามที่คาดหวัง

รายละเอียดที่ควรทราบ: Lua ทำให้สตริงเป็น immutable และนำกลับมาใช้ภายในผ่านกลไกที่เรียกว่าการใช้สตริงโดยซ้ำ นี่เป็นเรื่องดีเพราะช่วยประหยัดหน่วยความจำและทำให้การดำเนินการความยาวสตริงเร็วขึ้น

ดูเพิ่มเติมได้ที่