Lua - สตริง
String คือลำดับของอักขระเช่นเดียวกับอักขระควบคุมเช่นฟีดแบบฟอร์ม String สามารถเริ่มต้นได้ด้วยสามรูปแบบซึ่งประกอบด้วย -
- อักขระระหว่างเครื่องหมายคำพูดเดี่ยว
- อักขระระหว่างเครื่องหมายคำพูดคู่
- อักขระระหว่าง [[และ]]
ตัวอย่างสำหรับสามรูปแบบข้างต้นแสดงอยู่ด้านล่าง
string1 = "Lua"
print("\"String 1 is\"",string1)
string2 = 'Tutorial'
print("String 2 is",string2)
string3 = [["Lua Tutorial"]]
print("String 3 is",string3)
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
"String 1 is" Lua
String 2 is Tutorial
String 3 is "Lua Tutorial"
อักขระลำดับ Escape ใช้ในสตริงเพื่อเปลี่ยนการตีความปกติของอักขระ ตัวอย่างเช่นในการพิมพ์เครื่องหมายจุลภาคกลับด้านคู่ ("") เราได้ใช้ \ "ในตัวอย่างข้างต้นลำดับ Escape และการใช้งานแสดงอยู่ด้านล่างในตาราง
ลำดับการหลบหนี | ใช้ |
---|---|
\ ก | ระฆัง |
\ b | Backspace |
\ ฉ | ฟีดรูปแบบ |
\ n | บรรทัดใหม่ |
\ r | การกลับรถ |
\ t | แท็บ |
\ v | แท็บแนวตั้ง |
\\ | แบ็กสแลช |
\ " | คำพูดคู่ |
\ ' | คำพูดเดี่ยว |
\ [ | วงเล็บเหลี่ยมด้านซ้าย |
\] | วงเล็บเหลี่ยมขวา |
การจัดการสตริง
Lua รองรับสตริงเพื่อจัดการสตริง -
ซีเนียร์ | วิธีการและวัตถุประสงค์ |
---|---|
1 | string.upper(argument) ส่งคืนการแสดงอาร์กิวเมนต์เป็นตัวพิมพ์ใหญ่ |
2 | string.lower(argument) ส่งกลับการแทนค่าตัวพิมพ์เล็กของอาร์กิวเมนต์ |
3 | string.gsub(mainString,findString,replaceString) ส่งคืนสตริงโดยแทนที่การเกิดขึ้นของ findString ด้วย replaceString |
4 | string.find(mainString,findString, optionalStartIndex,optionalEndIndex) ส่งคืนดัชนีเริ่มต้นและดัชนีสิ้นสุดของ findString ในสตริงหลักและศูนย์หากไม่พบ |
5 | string.reverse(arg) ส่งคืนสตริงโดยการย้อนกลับอักขระของสตริงที่ผ่าน |
6 | string.format(...) ส่งคืนสตริงที่จัดรูปแบบ |
7 | string.char(arg) and string.byte(arg) ส่งคืนการแสดงตัวเลขและอักขระภายในของอาร์กิวเมนต์อินพุต |
8 | string.len(arg) ส่งคืนความยาวของสตริงที่ผ่าน |
9 | string.rep(string, n)) ส่งคืนสตริงโดยการทำซ้ำสตริงเดียวกัน n จำนวนครั้ง |
10 | .. ดังนั้นตัวดำเนินการเชื่อมต่อสองสตริง |
ตอนนี้เรามาดูตัวอย่างบางส่วนเพื่อดูว่าฟังก์ชันการจัดการสตริงเหล่านี้ทำงานอย่างไร
การจัดการกรณี
โค้ดตัวอย่างสำหรับการจัดการสตริงเป็นตัวพิมพ์ใหญ่และตัวพิมพ์เล็กมีให้ด้านล่าง
string1 = "Lua";
print(string.upper(string1))
print(string.lower(string1))
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
LUA
lua
การเปลี่ยน Substring
โค้ดตัวอย่างสำหรับการแทนที่การเกิดขึ้นของสตริงหนึ่งด้วยอีกสตริงได้รับด้านล่าง
string = "Lua Tutorial"
-- replacing strings
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is "..newstring)
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
The new string is Lua Language
การค้นหาและการย้อนกลับ
โค้ดตัวอย่างสำหรับการค้นหาดัชนีของสตริงย่อยและสตริงการย้อนกลับได้รับด้านล่าง
string = "Lua Tutorial"
-- replacing strings
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("The new string is",reversedString)
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
5 12
The new string is lairotuT auL
การจัดรูปแบบสตริง
หลายครั้งในการเขียนโปรแกรมของเราเราอาจต้องพิมพ์สตริงในรูปแบบ คุณสามารถใช้ฟังก์ชัน string.format เพื่อจัดรูปแบบผลลัพธ์ดังที่แสดงด้านล่าง
string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- Basic string formatting
print(string.format("Basic formatting %s %s",string1,string2))
-- Date formatting
date = 2; month = 1; year = 2014
print(string.format("Date formatting %02d/%02d/%03d", date, month, year))
-- Decimal formatting
print(string.format("%.4f",1/3))
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
Basic formatting Lua Tutorial
Date formatting 02/01/2014
0.3333
การแสดงอักขระและไบต์
โค้ดตัวอย่างสำหรับการแสดงอักขระและไบต์ซึ่งใช้สำหรับการแปลงสตริงจากสตริงเป็นการแสดงภายในและในทางกลับกัน
-- Byte conversion
-- First character
print(string.byte("Lua"))
-- Third character
print(string.byte("Lua",3))
-- first character from last
print(string.byte("Lua",-1))
-- Second character
print(string.byte("Lua",2))
-- Second character from last
print(string.byte("Lua",-2))
-- Internal Numeric ASCII Conversion
print(string.char(97))
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
76
97
97
117
117
a
ฟังก์ชั่นทั่วไปอื่น ๆ
การปรับแต่งสตริงทั่วไป ได้แก่ การต่อสตริงการหาความยาวของสตริงและในบางครั้งการทำสตริงเดียวกันซ้ำหลาย ๆ ครั้ง ตัวอย่างสำหรับการดำเนินการเหล่านี้แสดงไว้ด้านล่าง
string1 = "Lua"
string2 = "Tutorial"
-- String Concatenations using ..
print("Concatenated string",string1..string2)
-- Length of string
print("Length of string1 is ",string.len(string1))
-- Repeating strings
repeatedString = string.rep(string1,3)
print(repeatedString)
เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้
Concatenated string LuaTutorial
Length of string1 is 3
LuaLuaLua