概述
一、字符串
-
字符串的表示形式: 单引号"'",双引号""",两对中括号"[[]]"。
-
转义字符:
-
ddd: 1到3位八进制数所代表的的任意字符。
-
xhh: 1到2位十六进制数所代表的的任意字符。
-
-
字符串操作:
-
string.upper('Hello')
-
功能:字符串全部转换为大写字母。
-
结果:'HELLO'
-
-
string.lower('Hello')
-
功能:字符串全部转换为小写字母。
-
结果:'hello'
-
-
string.gsub(mainString, findString, replaceString, num)
-
功能:在mainString中,将findString替换为replaceString,num为替换的次数。
-
示例:string.gsub('abababab', 'ab', 'cd', 3)
-
结果:'cdcdcdab'
-
-
string.find(str, substr, [init, [end]])
-
功能:在str中查找substr,返回substr在str中的起始索引;如果没有找到,则返回nil;init, end为可选参数,表示在str的指定索引区间查找substr。
-
示例:a, b = string.find('abcd', 'bc')
-
结果:a = 2, b = 3
-
-
string.reverse('hello')
-
功能:字符串反转。
-
结果:"olleh"。
-
-
string.format("value is %d", 4)
-
功能:返回类似于c语言中printf格式化后的字符串。关于格式字符,在后文中说明。
-
结果:'value is 4'
-
-
string.char(97, 98, 99, 100)
-
功能:将整形数字转换为字符,并连接为字符串。
-
结果:"abcd"。
-
-
string.byte('abcd', [3])
-
功能:将字符串指定索引的字符,转换为整数值。索引参数可选,默认为1.
-
结果:99.
-
-
string.len('abcd')
-
功能:返回字符串的长度。
-
结果:4.
-
-
string.rep('hello', 3)
-
功能:返回指定字符串的n次拷贝
-
结果:hellohellohello
-
-
string.gmatch(str, pattern)
-
功能:返回一个迭代器函数,每次调用这个迭代器函数,返回一个在str中找到的下一个符合pattern描述的子串。如果没有找到返回nil。关于匹配模式在下文中说明。
-
示例:for word in string.gmatch('hello lua and python', '%a+') do print(word) end
-
结果:依次输出hello, lua, and, python
-
-
string.match(str, pattern, [init])
-
功能:在str中搜索并返回第一个符合pattern的子串。init表示str的起始位置,可选。
-
示例:string.match('hello 33 lua', '%d+ %a+')
-
输出:33 lua
-
-
-
字符串格式化:
-
string.format()用来生成具有特定格式的字符串。类似c语言中的printf()函数。
-
格式化字符:
-
%c:
-
作用:接收一个数字,将其转换为字符。
-
示例:string.format("%c", 97)
-
结果:a
-
-
%d、%i:
-
作用:接收一个数字,将其转换为有符号整数。
-
示例:string.format("%d", -1)
-
结果:-1
-
-
%u: 将数字转换为无符号整数。
-
%o: 将数字转换为八进制数格式。
-
%x、%X: 将数字转换为十六进制数格式。
-
%e、%E:将数字转换为科学计数法格式。
-
%f:将数字转换为浮点数。
-
%g:将数字转换为%e和%f中较短的一种格式。
-
%q:
-
作用:接收一个字符串,并将其转化为可安全被lua编译器读入的格式。
-
示例:string.format('%q', 'onentwo')
-
结果:
-
one
-
two
-
-
-
%s:接收一个字符串,并按照给定的格式,转换该字符串。
-
-
格式化字符中%后的修饰参数,读入顺序如下:
-
+ :
-
作用:正数时显示+号;负数时显示-号。
-
示例:string.format("%+d", 4)
-
结果:+4
-
-
0(数字0):
-
作用:占位符,配合宽度数值使用。默认占位符是空格。
-
示例:string.format("%+03d", 4)
-
结果:+04。注意:+也占了一位。
-
-
宽度数值:
-
作用:最少占用的位数。不足指定宽度数值时,用占位符补充。
-
示例1:string.format("%03d", 4)
-
结果1:004
-
示例2:string.format("%03d", 12345678)
-
结果2:12345678
-
-
小数位数或字串裁切:
-
作用:显示指定个数的小数或显示指定位数的字符串。
-
示例1:string.format("%.3f", 6.1)
-
结果1:6.100
-
示例2:string.format('%.3s', 'abcd')
-
结果2:abc
-
-
-
-
匹配模式:
-
匹配模式用字符串来描述。
-
匹配模式可以用于模式匹配函数:string.find、string.match、string.gmatch、string.gsub
-
字符类(也称元字符),表示匹配某一类字符:
-
.(点):匹配任何字符。
-
%a: 匹配任何字母。
-
%w: 匹配任何字母或数字。
-
%l: 匹配任何小写字母。
-
%u: 匹配任何大写字母。
-
%d: 匹配任何数字。
-
%x: 匹配任何十六进制数。
-
%z: 匹配任何代表0的字符。
-
%p: 匹配任何标点。
-
%s: 匹配任何空白符。
-
%c: 匹配任何控制字符。
-
[字符类的集合]:
-
示例:[%l%u%d]
-
作用:匹配小写字母、大写字母或数字。
-
-
[^字符类的集合]:
-
示例:[^%l%u%d]
-
作用:匹配非小写字母、非大写字母和非数字。
-
-
以上字符类大写时,表示不匹配该类字符。
-
示例:%A
-
作用:匹配任何非字母的字符。
-
-
-
模式条目:
-
单个字符类只能匹配该类中的一个字符。
-
示例:%a。匹配一个字母。
-
-
* : 匹配0个或多个,匹配尽可能长的串。
-
+ : 匹配1个或多个,匹配尽可能长的串。
-
- : 匹配0个或多个,匹配尽可能短的串。
-
? : 匹配0个或1个。
-
%n:
-
n的取值:1至9.
-
作用:匹配等于n号捕获物的子串。
-
示例:见下文。
-
-
%bxy:
-
x、y为明确的字符。
-
作用:匹配x和y平衡的子串
-
示例:string.match(',,,(123)abc', "%b()")。
-
结果:(123)
-
-
%f[set]
-
作用:
-
set可以是字符类中的任何组合。
-
匹配set指定子串前面的子串。
-
-
示例:???
-
-
-
模式:
-
^ : 匹配字符串的开头。
-
$ : 匹配字符串的结尾。
-
-
捕获:
-
作用:
-
匹配模式字符串中用小括号括起来的子模式,称为捕获。
-
与子模式相匹配的字符串会被保存在捕获物中。
-
-
示例:string.gsub(" abc ", "^%s*(.-)%s*$", "%1")
-
结果:abc
-
-
最后
以上就是追寻康乃馨为你收集整理的Lua学习笔记-day4: 字符串的全部内容,希望文章能够帮你解决Lua学习笔记-day4: 字符串所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复