Lua - Chuỗi
Chuỗi là một chuỗi các ký tự cũng như các ký tự điều khiển giống như nguồn cấp dữ liệu biểu mẫu. Chuỗi có thể được khởi tạo với ba dạng bao gồm:
- Các ký tự giữa các dấu nháy đơn
- Các ký tự giữa dấu ngoặc kép
- Các ký tự giữa [[và]]
Dưới đây là một ví dụ cho ba hình thức trên.
string1 = "Lua"
print("\"String 1 is\"",string1)
string2 = 'Tutorial'
print("String 2 is",string2)
string3 = [["Lua Tutorial"]]
print("String 3 is",string3)
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
"String 1 is" Lua
String 2 is Tutorial
String 3 is "Lua Tutorial"
Các ký tự chuỗi thoát được sử dụng trong chuỗi để thay đổi cách diễn giải thông thường của các ký tự. Ví dụ: để in dấu phẩy đảo ngược kép (""), chúng tôi đã sử dụng \ "trong ví dụ trên. Trình tự thoát và cách sử dụng nó được liệt kê bên dưới trong bảng.
Trình tự thoát | Sử dụng |
---|---|
\ a | chuông |
\ b | Backspace |
\ f | Thức ăn dạng |
\ n | Dòng mới |
\ r | Vận chuyển trở lại |
\ t | Chuyển hướng |
\ v | Tab dọc |
\\ | Gạch chéo ngược |
\ " | Dấu ngoặc kép |
\ ' | Dấu nháy đơn |
\ [ | Dấu ngoặc vuông bên trái |
\] | Dấu ngoặc vuông bên phải |
Thao tác chuỗi
Lua hỗ trợ chuỗi để thao tác với chuỗi -
Sr.No. | Phương pháp & Mục đích |
---|---|
1 | string.upper(argument) Trả về biểu diễn viết hoa của đối số. |
2 | string.lower(argument) Trả về biểu diễn chữ thường của đối số. |
3 | string.gsub(mainString,findString,replaceString) Trả về một chuỗi bằng cách thay thế các lần xuất hiện của findString bằng ReplaceString. |
4 | string.find(mainString,findString, optionalStartIndex,optionalEndIndex) Trả về chỉ mục bắt đầu và chỉ mục kết thúc của chuỗi findString trong chuỗi chính và nil nếu không tìm thấy. |
5 | string.reverse(arg) Trả về một chuỗi bằng cách đảo ngược các ký tự của chuỗi đã truyền. |
6 | string.format(...) Trả về một chuỗi được định dạng. |
7 | string.char(arg) and string.byte(arg) Trả về các biểu diễn số và ký tự bên trong của đối số đầu vào. |
số 8 | string.len(arg) Trả về độ dài của chuỗi đã truyền. |
9 | string.rep(string, n)) Trả về một chuỗi bằng cách lặp lại cùng một chuỗi n số lần. |
10 | .. Do đó toán tử nối hai chuỗi. |
Bây giờ, chúng ta hãy đi sâu vào một vài ví dụ để xem chính xác cách hoạt động của các hàm thao tác chuỗi này.
Thao tác trường hợp
Dưới đây là mã mẫu để thao tác các chuỗi thành chữ hoa và chữ thường.
string1 = "Lua";
print(string.upper(string1))
print(string.lower(string1))
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
LUA
lua
Thay thế một chuỗi con
Dưới đây là một mã mẫu để thay thế các lần xuất hiện của một chuỗi bằng chuỗi khác.
string = "Lua Tutorial"
-- replacing strings
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is "..newstring)
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
The new string is Lua Language
Tìm và đảo ngược
Dưới đây là một đoạn mã mẫu để tìm chỉ mục của chuỗi con và chuỗi đảo ngược.
string = "Lua Tutorial"
-- replacing strings
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("The new string is",reversedString)
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
5 12
The new string is lairotuT auL
Định dạng chuỗi
Nhiều lần trong lập trình của chúng tôi, chúng tôi có thể cần in các chuỗi theo cách được định dạng. Bạn có thể sử dụng hàm string.format để định dạng đầu ra như hình dưới đây.
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))
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
Basic formatting Lua Tutorial
Date formatting 02/01/2014
0.3333
Biểu diễn ký tự và Byte
Mã mẫu cho biểu diễn ký tự và byte, được sử dụng để chuyển đổi chuỗi từ chuỗi sang biểu diễn bên trong và ngược lại.
-- 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))
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
76
97
97
117
117
a
Các chức năng phổ biến khác
Các thao tác chuỗi phổ biến bao gồm ghép chuỗi, tìm độ dài của chuỗi và đôi khi lặp lại cùng một chuỗi nhiều lần. Ví dụ cho các hoạt động này được đưa ra dưới đây.
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)
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
Concatenated string LuaTutorial
Length of string1 is 3
LuaLuaLua