Chaîne Lua


Une chaîne ou String est une chaîne de caractères composée de chiffres, de lettres et de traits de soulignement.

Les chaînes en langage Lua peuvent être représentées des trois manières suivantes :

  • Une chaîne de caractères entre guillemets simples.

  • Une chaîne de caractères entre guillemets doubles. Une chaîne de caractères entre

  • [[et]].

Les exemples de chaînes des trois méthodes ci-dessus sont les suivants :

string1 = "Lua"
print("\"字符串 1 是\"",string1)
string2 = 'w3cschool.cc'
print("字符串 2 是",string2)

string3 = [["Lua 教程"]]
print("字符串 3 是",string3)

Le résultat de l'exécution du code ci-dessus est :

"字符串 1 是"	Lua
字符串 2 是	w3cschool.cc
字符串 3 是	"Lua 教程"

L'échappement Le caractère est utilisé pour indiquer qu'il ne peut pas afficher directement les caractères, tels que la touche retour, la touche entrée, etc. Par exemple, vous pouvez utiliser """ pour convertir des guillemets doubles dans une chaîne.

Tous les caractères d'échappement et leurs significations correspondantes :

转义字符
意义
ASCII码值(十进制)
a
响铃(BEL)
007
b
退格(BS) ,将当前位置移到前一列
008
f
换页(FF),将当前位置移到下页开头
012
n
换行(LF) ,将当前位置移到下一行开头
010
r
回车(CR) ,将当前位置移到本行开头
013
t
水平制表(HT) (跳到下一个TAB位置)
009
v
垂直制表(VT)
011
\
代表一个反斜线字符'''
092
'
代表一个单引号(撇号)字符
039
"
代表一个双引号字符
034
空字符(NULL)
000
ddd
1到3位八进制数所代表的任意字符
三位八进制
xhh
1到2位十六进制所代表的任意字符
二位十六进制

Opérations sur les chaînes

Lua fournit de nombreuses méthodes pour prendre en charge les opérations sur les chaînes :

序号方法 & 用途
1string.upper(argument):
字符串全部转为大写字母。
2string.lower(argument):
字符串全部转为小写字母。
3string.gsub(mainString,findString,replaceString,num)
在字符串中替换,mainString为要替换的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换),如:
> string.gsub("aaaa","a","z",3);
zzza	3
4string.strfind (str, substr, [init, [end]])
在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil。
> string.find("Hello Lua user", "Lua", 1) 
7	9
5string.reverse(arg)
字符串反转
> string.reverse("Lua")
auL
6string.format(...)
返回一个类似printf的格式化字符串
> string.format("the value is:%d",4)
the value is:4
7string.char(arg) 和 string.byte(arg[,int])
char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符)。
> string.char(97,98,99,100)
abcd
> string.byte("ABCD",4)
68
> string.byte("ABCD")
65
>
8string.len(arg)
计算字符串长度。
string.len("abc")
3
9string.rep(string, n))
返回字符串string的n个拷贝
> string.rep("abcd",2)
abcdabcd
10..
链接两个字符串
> print("www.w3cschool".."cc")
www.w3cschoolcc

Conversion de la casse des chaînes

Les exemples suivants montrent comment convertir la casse d'une chaîne :

string1 = "Lua";
print(string.upper(string1))
print(string.lower(string1))

Le résultat de l'exécution du code ci-dessus est :

LUA
lua

Recherche et inversion de chaîne

L'exemple suivant montre comment convertir des caractères Rechercher et inverser la chaîne :

string = "Lua Tutorial"
-- 查找字符串
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("新字符串为",reversedString)

Le résultat de l'exécution du code ci-dessus est :

5	12
新字符串为	lairotuT auL

Formatage de chaîne

L'exemple suivant montre comment formater une chaîne :

string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- 基本字符串格式化
print(string.format("基本格式化 %s %s",string1,string2))
-- 日期格式化
date = 2; month = 1; year = 2014
print(string.format("日期格式化 %02d/%02d/%03d", date, month, year))
-- 十进制格式化
print(string.format("%.4f",1/3))

Le Le résultat de l'exécution du code ci-dessus est :

基本格式化 Lua Tutorial
日期格式化 02/01/2014
0.3333

Conversion entre caractères et entiers

L'exemple suivant montre la conversion entre caractères et entiers :

-- 字符转换
-- 转换第一个字符
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))

Ci-dessus Le résultat de l'exécution du code est :

76
97
97
117
117
a

Autres fonctions couramment utilisées

Les exemples suivants démontrent d'autres opérations de chaîne, telles que le calcul de la longueur d'une chaîne, la concaténation de chaînes, la copie de chaîne, etc. :

string1 = "www."
string2 = "w3cschool"
string3 = ".cc"
-- 使用 .. 进行字符串连接
print("连接字符串",string1..string2..string3)

-- 字符串长度
print("字符串长度 ",string.len(string2))

-- 字符串复制 2 次
repeatedString = string.rep(string2,2)
print(repeatedString)

L'exécution le résultat du code ci-dessus est :

连接字符串	www.w3cschool.cc
字符串长度 	9
w3cschoolw3cschool