Lua - 字符串
字符串是字符序列以及换页等控制字符。 字符串可以用三种形式初始化,包括 −
- 单引号之间的字符
- 双引号之间的字符
- [[ and ]] 之间的字符
以上三种形式的示例如下所示。
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 | Bell |
\b | Backspace |
\f | Formfeed |
\n | New line |
\r | Carriage return |
\t | Tab |
\v | Vertical tab |
\\ | Backslash |
\" | Double quotes |
\' | Single quotes |
\[ | Left square bracket |
\] | Right square bracket |
字符串操作
Lua 支持字符串操作字符串 −
序号 | 方法 & 用途 |
---|---|
1 | string.upper(argument) 返回参数的大写形式。 |
2 | string.lower(argument) 返回参数的小写形式。 |
3 | string.gsub(mainString,findString,replaceString) 通过用 replaceString 替换 findString 的出现来返回一个字符串。 |
4 | string.find(mainString,findString, optionalStartIndex,optionalEndIndex) 返回主字符串中 findString 的开始索引和结束索引,如果没有找到,则返回 nil。 |
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
替换子字符串
下面给出了用另一个字符串替换出现的字符串的示例代码。
string = "Lua Tutorial" -- 替换字符串 newstring = string.gsub(string,"Tutorial","Language") print("The new string is "..newstring)
当我们运行上述程序时,我们将得到以下输出。
The new string is Lua Language
查找和反转字符串
下面给出了查找子字符串索引和反转字符串的示例代码。
string = "Lua Tutorial" -- 替换字符串 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 -- 基本字符串格式 print(string.format("Basic formatting %s %s",string1,string2)) -- 日期格式 date = 2; month = 1; year = 2014 print(string.format("Date formatting %02d/%02d/%03d", date, month, year)) -- 十进制格式 print(string.format("%.4f",1/3))
当我们运行上述程序时,我们将得到以下输出。
Basic formatting Lua Tutorial Date formatting 02/01/2014 0.3333
字符和字节表示形式
字符和字节表示的示例代码,用于将字符串从字符串转换为内部表示,反之亦然。
-- 字节转换 -- 第一个字符 print(string.byte("Lua")) -- 第三个字符 print(string.byte("Lua",3)) -- 最后一个字符 print(string.byte("Lua",-1)) -- 第二个字符 print(string.byte("Lua",2)) -- 倒数第二个字符 print(string.byte("Lua",-2)) -- 内部数字 ASCII 转换 print(string.char(97))
当我们运行上述程序时,我们将得到以下输出。
76 97 97 117 117 a
其它常用函数
常见的字符串操作包括字符串连接、查找字符串长度以及有时多次重复相同的字符串。 下面给出了这些操作的示例。
string1 = "Lua" string2 = "Tutorial" -- 使用 .. 进行字符串连接 print("Concatenated string",string1..string2) -- 字符串长度 print("Length of string1 is ",string.len(string1)) -- 重复字符串 repeatedString = string.rep(string1,3) print(repeatedString)
当我们运行上述程序时,我们将得到以下输出。
Concatenated string LuaTutorial Length of string1 is 3 LuaLuaLua