Rentetan Lua


Rentetan atau Rentetan ialah rentetan aksara yang terdiri daripada nombor, huruf dan garis bawah.

Rentetan dalam bahasa Lua boleh diwakili dalam tiga cara berikut:

  • Rentetan aksara antara petikan tunggal.

  • Rentetan aksara antara petikan berganda. Rentetan aksara antara

  • [[dan]].

Contoh rentetan bagi tiga kaedah di atas adalah seperti berikut:

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

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

Hasil keluaran untuk melaksanakan kod di atas ialah:

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

Escape aksara digunakan untuk menunjukkan bahawa ia tidak boleh memaparkan aksara secara langsung, seperti kekunci belakang, kekunci masukkan, dsb. Contohnya, anda boleh menggunakan """ untuk menukar petikan berganda dalam rentetan.

Semua aksara melarikan diri dan makna yang sepadan dengannya:

转义字符
意义
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位十六进制所代表的任意字符
二位十六进制

Operasi rentetan

Lua menyediakan banyak kaedah untuk menyokong operasi rentetan:

序号方法 & 用途
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

Penukaran kes rentetan

Contoh berikut Menunjukkan cara menukar kes daripada rentetan:

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

Hasil pelaksanaan kod di atas ialah:

LUA
lua

String search and reverse

Contoh berikut menunjukkan cara menukar aksara Cari dan terbalikkan rentetan :

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

Hasil pelaksanaan kod di atas ialah:

5	12
新字符串为	lairotuT auL

Pemformatan rentetan

Contoh berikut menunjukkan cara memformat rentetan :

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))

The hasil pelaksanaan kod di atas ialah:

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

Penukaran antara aksara dan integer

Contoh berikut menunjukkan penukaran antara aksara dan integer:

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

Di atas Hasil pelaksanaan kod ialah :

76
97
97
117
117
a

Fungsi lain yang biasa digunakan

Contoh berikut menunjukkan operasi rentetan lain, seperti pengiraan panjang rentetan, penggabungan rentetan, salinan rentetan, dsb.:

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

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

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

Pelaksanaan hasil kod di atas ialah:

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