📜  所有字符的 lua 表 - Lua (1)

📅  最后修改于: 2023-12-03 15:25:44.438000             🧑  作者: Mango

所有字符的 Lua 表 - Lua

在 Lua 编程语言中,字符可以用单引号或双引号括起来表示。Lua 提供了一个内置的“所有字符的表”,即一个包含所有字符的列表。这个表可以在 Lua 的字符串库中使用,用于字符的处理和转换。

Lua字符串和字符的基本使用

Lua 中的字符串是一种不可变的类型,可以使用单引号或双引号表示。例如:

local str1 = 'hello'
local str2 = "world"

字符串可以进行基本的操作,如连接、长度计算和下标访问等。例如:

local str = str1 .. ' ' .. str2 -- 连接两个字符串
print(str) -- 输出 "hello world"
print(#str) -- 计算字符串的长度,输出 11
print(string.sub(str, 7, 11)) -- 截取子串,输出 "world"

字符可以使用单引号或者转义序列表示。例如:

local char1 = 'a'
local char2 = '\n'
local char3 = '\x61'

其中,'\n' 表示换行符,'\x61' 表示 ASCII 码为 97 的字符 'a'。

字符可以使用下标访问,例如:

local char = str1:sub(2, 2) -- 截取字符串中的第二个字符 'e'
所有字符的表

Lua 的字符串库中提供了一个内置的“所有字符的表”,即 string.char 函数。该函数返回一个包含所有字符的列表。例如:

print(string.char(97, 98, 99)) -- 输出 "abc"

string.char 函数还可以接受任意数量的参数,用于构造字符串。例如:

local charStr = string.char(72, 101, 108, 108, 111) -- "Hello"
字符和数字的相互转换

Lua 还提供了将字符和数字相互转换的函数,即 string.bytestring.charstring.byte 函数用于将一个字符转换为 ASCII 码值。例如:

local ascii = string.byte('a') -- 返回 97

string.byte 函数还可以接受第二个参数,用于指定转换的起始位置和结束位置。例如:

local ascii = string.byte('abc', 2) -- 返回 98,表示字符串中第二个字符 'b' 的 ASCII 码值

string.char 函数用于将一个 ASCII 码值转换为字符。例如:

local char = string.char(97) -- 返回字符 'a'
字符串的常用操作

Lua 的字符串库提供了很多常用的字符串操作,包括查询、替换、格式化等。下面是一些例子:

查询

string.find(str, pattern):查找字符串中第一次出现的模式,并返回其起始位置和结束位置。

local str = "hello world"
local startPos, endPos = string.find(str, "world") -- 返回 7 和 11,表示字符串中第一次出现 "world" 的位置

string.match(str, pattern):在字符串中查找模式,并返回匹配的子串。若有多个匹配,则返回第一个匹配。

local str = "hello world"
local subStr = string.match(str, "wo%a+") -- 返回 "world",表示字符串中第一个匹配 "wo%a+" 的子串,其中 %a+ 匹配至少一个字母字符。
替换

string.gsub(str, pattern, replace):将字符串中所有匹配模式的子串替换为指定的字符串。

local str = "hello world"
local newStr = string.gsub(str, "world", "Lua") -- 返回 "hello Lua",表示将字符串中所有 "world" 替换为 "Lua"。
格式化

string.format(str, ...):按照指定的格式字符串,将参数按顺序格式化为字符串。

local num = 3.1415926
local str = string.format("The number is %.2f", num) -- 返回 "The number is 3.14",表示将 num 格式化为保留两位小数的字符串。

以上是 Lua 中字符和字符串的基本用法和操作,了解这些对编写 Lua 程序非常有帮助。