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