引言
a = "one string"
b = string.gsub(a, "one", "another") --改变字符串中的某些部分
print(a) --> one string
print(b) --> another string
Lua语言的字符串是自动内存该管理
使用长度操作符#
,获取字符串的长度
a = "hello"
print(#a) --> 5
print(#"good bye") -->8
使用连接操作符..
来进行字符串的连接。如果操作数中存在数值,那么Lua语言会先把数值转换成字符串
如果是数字之间,要用空格分开,否则会被当成小数点
"Hello".."World" -->Hello World
"result is"..3 --> result is 3
字符串是不可变量
字符串连接是创建一个新字符串,而不是改变原来作为操作数的字符串
a = "Hello"
a.." World"
print(a) --> Hello
转义字符
与C转移字符一样
符号 | 描述 |
---|---|
\a | 响铃 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\\ | 反斜杠 |
\" | 双引号 |
\' | 单引号 |
长字符串/多行字符串
用[[ ]]
表示多行字符
用""
表示长字符串
pag = [[
<htmll>
<head>
<title>你好</title>
</head>
</html>
]]
强制类型转换
隐式转换
数值转字符串
10 .. 20 --> 1020 ..是连接字符串
字符串转数值
仅限于字符串是数字
"3" + 5 --> 8
显示转换
也可以使用函数tonumber
,用于显示将字符串转成数值
当这个字符串内容不能表示为有效数字时该函数返回nil;否则,该函数就按照Lua语法扫描器的规则返回对应的整型值或浮点类型值
tonumber(" -3") --> -3
tonumber("10e4") --> 100000.0
tonumber("10e") --> nul 不是有效数字
tonumber("0x1.3p-4") --> 0.07421875
默认情况下,函数tonumber使用的是十进制,但是也可以指明使用二进制到三十六进制之间的任意进制:
tonumber( "100101",2) --> 37
tonumber("fff",16) --> 4095
tonumber("-ZZ",36) --> -1295
tonumber("987",8) --> nil
可使用toString
转字符串
字符串标准库
s = "HelloWorld"
string.len(s) --返回字符串长度 等价于#s
string.rep(s, n) --返回将字符串s重复n次的结果
string.reverse("HelloWorld") --用于字符串反转 dlroWolleH
string.lower(s) --返回一份s的副本,其中大写字母转小写字母
string.upper(s) --与lower相反,小写转大写
string.sub(s, i, j) --从字符串s中提取第i到第j个字符 Lua是从1开始的,-1代表最后一个字符,-2倒数第二个字符
string.char(97) --将整数转成对应的字符,返回字符串 根据ASCII表 a
string.char(99, 100, 101) --cde
string.byte("abc") --返回字符串s中第一个字符的内部数值,根据ASCII表 97
string.byte("abc", 2) --98
string.format("x = %d y = %d", 10, 20) --格式化输出 x = 10 y = 20
更多查看luaAPI