Lua字串


字串是由一系列字元以及控制字元組成,如換頁符。 字串可以用三種形式初始化,包括 -

  • 單引號之間的字元
  • 雙引號之間的字元
  • [[]]之間的字元

以下示出了上述三種形式的範例。

string1 = "Lua"
print(""String 1 is"",string1)

string2 = 'Yiibai Tutorial'
print("String 2 is",string2)

string3 = [["Lua Tutorial"]]
print("String 3 is",string3)

當執行上面的程式時,將得到以下輸出 -

"String 1" is    Lua
String 2 is    Yiibai Tutorial
String 3 is    "Lua Tutorial"

字串中使用跳脫序列字元來更改字元的正常解釋。例如,要列印雙引號(""),在上面的範例中使用了"。跳脫序列及其用法列在下表中。

跳脫序列 用法
\a
\b 退格
\f 換頁
\n 新行
\r 回車
\t 製表符
\v 垂直製表符
\\ 反斜槓
" 雙引號
' 單引號
\[ 左方括號
\] 右方括號

字串操作

Lua支援字串來操作字串 -

編號 方法 作用
1 string.upper(argument) 返回引數的大寫表示。
2 string.lower(argument) 返回引數的小寫表示。
3 string.gsub(mainString,findString,replaceString) 返回用replaceString替換findString後字串。
4 string.find(mainString,findString, optionalStartIndex,optionalEndIndex) 返回mainStringfindString的起始索引和結束索引找到字串,如果未找到則返回nil
5 string.reverse(arg) 將傳遞的字串arg反轉後的字串。
6 string.format(...) 返回格式化字串。
7 string.char(arg)string.byte(arg) 返回輸入引數的內部數位和字元表示。
8 string.len(arg) 返回傳遞字串arg的長度。
9 string.rep(string, n)) 通過重複相同的字串n次返回一個字串。
10 .. 此運算子連線兩個字串。

現在,來深入了解一些範例,以準確了解這些字串操作函式的行為方式。

大小寫操作

下面給出了用於將字串轉換為大寫和小寫的範例程式碼。

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

格式化字串

在Lua程式設計中,有時需要以格式化的方式列印字串。 那麼可使用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