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 支持 string 来操作字符串 -
先生。 | 方法与目的 |
---|---|
1 | 字符串.upper(参数) 返回参数的大写表示形式。 |
2 | 字符串.lower(参数) 返回参数的小写表示形式。 |
3 | string.gsub(mainString,findString,replaceString) 通过用replaceString 替换出现的findString 来返回字符串。 |
4 | 字符串.find(mainString,findString, 可选开始索引,可选结束索引) 返回主字符串中 findString 的起始索引和结束索引,如果未找到则返回 nil。 |
5 | 字符串.reverse(arg) 通过反转传递的字符串的字符来返回字符串。 |
6 | 字符串.format(...) 返回格式化的字符串。 |
7 | string.char(arg) 和 string.byte(arg) 返回输入参数的内部数字和字符表示形式。 |
8 | 字符串.len(arg) 返回传递的字符串的长度。 |
9 | string.rep(字符串, n)) 通过重复相同的字符串 n 次来返回一个字符串。 |
10 | .. 因此运算符连接两个字符串。 |
现在,让我们深入研究几个示例,以准确了解这些字符串操作函数的Behave方式。
案例处理
下面给出了将字符串转换为大写和小写的示例代码。
string1 = "Lua"; print(string.upper(string1)) print(string.lower(string1))
当我们运行上面的程序时,我们将得到以下输出。
LUA lua
替换子字符串
下面给出了用另一个字符串替换出现的一个字符串的示例代码。
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