LUA字符串
字符串相关库函数
转换为数值型:tonumber (e [,base])
尝试将字符串类型转换为数值型,如果失败返回nil。
参数e:指定字符串,可选参数base:进制模式,二进制到三十六进制,如:tonumber("FFF", 16)返回4095,无参数时默认转换为十进制。
转换为字符串型:tostring (v)
尝试将数值型转换为字符串类型
参数v:任意数值
转换为字符内部表示的数值:string.byte (s [, i [, j]])
返回字符串内单个或所有字符的内部表示数值
参数s:指定字符串,可选参数i:字符串s定位的起点,可选参数j:字符串s定位的终点。无参数时默认转换字符串s中第一个字符。
将数值转换为字符:string.char (v)
返回数值所表示的字符,或多个数值参数表示的多个字符连接而成的字符串。
参数v:零个或多个整型数值
获取字符串长度:string.len (s)
返回字符串的长度
参数s:指定字符串,完全可以用 # 代替。
拷贝字符串:string.rep (s, n [, sep])
返回以参数n为拷贝次数并全部拼接的字符串
参数s:指定字符串,参数n:拷贝次数,可选参数sep:拷贝字符串间的任意分隔字符。
反转字符串:string.reverse (s)
返回前后反转的字符串
参数s:指定字符串
转换为小写字母:string.lower (s)
返回全部为小写字母的字符串,非字母不会被转换。
参数s:指定字符串
转换为大写字母:string.upper (s)
返回全部为大写字母的字符串,非字母不会被转换。
参数s:指定字符串
格式化输出:string.format (formatstring, ...)
类似C语言中printf ()函数
操作符
"#" -- 获取字符串的长度
print (#"Hello") --> 5
".." -- 连接两个字符串并生成新串,如果被连接目标是数值型,则自动转换成字符串型后进行连接。
print ("Hello"..365) --> Hello365
定义字符串常量
" " -- 使用双引号定义,双引号范围内的所有 ' ' 单引号字符无需额外转义。
' ' -- 使用单引号定义,单引号范围内的素有 " " 双引号字符无需额外转义。
[[ ]] -- 定义多行字符串,字符串内所有字符不会被转义,且会忽略所有换行符。为防止字符串内有冲突的符号]],可以在方括号中间加上一定数量的等号=来保持前后匹配,如:[==[ ]==]。
转义字符
\a -- 响铃 \b -- 退格 \f -- 换页 \n -- 换行 \r -- 回车 \t -- 水平制表符 \v -- 垂直制表符 \\ -- 反斜杠 \" -- 双引号 \' -- 单引号 \z -- 连接,跳过后面所有空白字符,直到遇到非空白 \ddd -- ddd三位十进制数字 \xhh -- hh两位十六进制数字 \u{h...h} -- LUA5.3版本后声明UTF-8字符,{}中任意有效的十六进制数字
强制类型转换
LUA会在需要数学运算时对字符串尝试进行数值转换,相反也会在需要字符串环境下对数值类型进行字符串转换。