- Lua 教程
- Lua - 首頁
- Lua 基礎
- Lua - 概述
- Lua - 環境
- Lua - 基本語法
- Lua - 註釋
- Lua - 列印 Hello World
- Lua - 變數
- Lua - 資料型別
- Lua - 運算子
- Lua - 迴圈
- Lua - 決策
- Lua - 函式
- Lua - 日期和時間
- Lua 陣列
- Lua - 陣列
- Lua - 多維陣列
- Lua - 陣列長度
- Lua - 遍歷陣列
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模組
- Lua - 模組
- Lua - 名稱空間
- Lua 元表
- Lua - 元表
- Lua 協程
- Lua - 協程
- Lua 檔案處理
- Lua - 檔案 I/O
- Lua 庫
- Lua - 標準庫
- Lua - 數學庫
- Lua - 作業系統工具
- Lua 有用資源
- Lua - 快速指南
- Lua - 有用資源
- Lua - 討論
Lua - 字串
字串是一系列字元以及控制字元,例如換頁符。字串可以透過三種形式初始化,包括:
單引號之間的字元
雙引號之間的字元
[[ 和 ]] 之間的字元
示例
下面顯示了上述三種形式的示例。
main.lua
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"
轉義序列字元用於字串中更改字元的正常解釋。例如,要列印雙引號(""),我們在上面的示例中使用了 \"。轉義序列及其用途在下面的表格中列出。
| 轉義序列 | 用途 |
|---|---|
| \a | 響鈴 |
| \b | 退格 |
| \f | 換頁 |
| \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, 可選起始索引,可選結束索引) 返回 findString 在主字串中的起始索引和結束索引,如果未找到則返回 nil。 |
| 5 | string.reverse(arg) 透過反轉傳遞的字串的字元來返回一個字串。 |
| 6 | string.format(...) 返回一個格式化的字串。 |
| 7 | string.char(arg) 和 string.byte(arg) 返回輸入引數的內部數值和字元表示形式。 |
| 8 | string.len(arg) 返回傳遞的字串的長度。 |
| 9 | string.rep(string, n)) 透過重複相同字串 n 次來返回一個字串。 |
| 10 | .. 因此運算子連線兩個字串。 |
現在,讓我們深入研究一些示例,以準確瞭解這些字串操作函式的行為。
大小寫操作
下面給出了一個將字串操作為大寫和小寫的示例程式碼。
main.lua
string1 = "Lua"; print(string.upper(string1)) print(string.lower(string1))
輸出
執行上述程式時,我們將獲得以下輸出。
LUA lua
替換子字串
下面給出了一個用另一個字串替換一個字串出現次數的示例程式碼。
main.lua
string = "Lua Tutorial"
-- replacing strings
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is "..newstring)
輸出
執行上述程式時,我們將獲得以下輸出。
The new string is Lua Language
查詢和反轉
下面給出了一個查詢子字串索引和反轉字串的示例程式碼。
main.lua
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 函式來格式化輸出,如下所示。
main.lua
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
字元和位元組表示
一個字元和位元組表示的示例程式碼,用於將字串從字串轉換為內部表示形式,反之亦然。
main.lua
-- 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
其他常用函式
常見的字串操作包括字串連線、查詢字串長度,有時還需要重複相同的字串多次。下面給出了這些操作的示例。
main.lua
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