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