string库
string.len
1、函数原型:
字符数 = string.len(字符串)
2、函数说明:
与#操作符返回字节数目不同,该函数返回字符串中的字符数目.
3、调用示例:
io.open();//打开控制台
str = "中文"
io.print(
string.len(str) //显示2个字符
,#str //显示在UTF8编码下占用6字节
)
execute("pause")
string.cmp
1、函数原型:
ret = string.cmp(字符串,字符串2,比较长度=null)
2、函数说明:
比较字符串前n个字符串字典序的大小(不区分字母大小写)
从第一个字符开始比较,如果能比较出大小则马上返回。字符串相等返回0.
比较长度是可选参数,默认值为取两个字符串长度的最大值,
如果比较长度大于两个字符串的长度,返回值为不相等。
3、调用示例:
io.open();//打开控制台
io.print(
string.cmp("abc","ABC")
,0
)
io.print(
string.cmp("abcd","ABC",3)
,0
)
io.print(
string.cmp("abc","ABCd",3)
,0
)
io.print(
string.cmp("zbc","aBC")
,1
)
io.print(
string.cmp("abc","zBC")
,-1
)
execute("pause") //按任意键继续
str2 = string.reverse(str)
字符串倒序排列。
chr = string.unpack(str, i [,j] )
取字符串str的第i个字符到第j个字符的字节码(整数值);
第二个参数可以省略(使用默认值1)。
chr = string.unpack("A");
io.open();
io.print(chr); //显示65
str = string.pack( chr[,...] | tarrchars )
参数一个或多个整数值,或由数值组成的table数组,
string.pack将每个整数作为字符的字节码并连接成一个字符串返回。
例如:
str = string.pack(65,66,67);
str = string.pack( {65;66;67} ); //参数也可以是一个数组
io.open( );
io.print(str); //显示ABC
str2 =string.lower(str)
将字符串str转换为小写
str2 = string.upper(str)
将字符串str转换为大写
只读的字符串内存
aardio从不改变现有的字符串,字符串内存是只读的,所有相同的字符串会指向同一内存地址,而修改字符串总是返回新的字符串。
string库所有的函数都是纯函数,遵守一个入口(参数),一个出口(返回值)的原则,所以不要忘记使用返回值接收被改变的字符串。
str = "abc";
string.upper(str); //这样的代码没有任何意义,也不会改变str
string.upper(str); //这样的代码没有任何意义,也不会改变str
正确的写法如下:
str = "abc";
str = string.upper(str);//不要忘记使用返回值接收被改变的字符串
str = string.upper(str);//不要忘记使用返回值接收被改变的字符串
这个规律适合所有截取字符串、改变字符串的函数.