今天项目中遇到一个字符串处理的通用函数,一时不明白胡乱搜索后才发现原来是字符串处理库里面的通用函数,想着该理一遍字符串。
这个库提供了字符串处理的通用函数。例如字符串查找,子串,模式匹配等。当在Lua中对字符串做索引时,第一个字符从1开始计算(而不是C里的0)。索引可以是负数。它指从字符串末尾反向解析。即,最后一个字符在-1位置处,等等。
字符串库中的所有函数都在表string中,它还将其设置为字符串元表的__index域。因此,你可以7以面向对象的形式使用字符串函数。例如,string.byte(s,i)可以写成s:byte(i)
字符串或串(String)是由数字,字母,下划线组成的一串字符。
Lua语言中字符串可以使用以下三种方式来表示:
(1)单引号间的一串字符。
(2)双引号间的一串字符。
(3)[[和]]间的一串字符。
以下三种方法的字符串实例如下:
string1
转义字符用于表示不能直接显示的字符,比如后退键,回车键,等。如在字符串转换双引号可以使用""" 。
所有的转义字符和所对应的意义:
字符串操作
Lua提供了很多的方法来支持字符串的操作:
字符串库假定采用单字节符编码。
1.string.byte(s[,i[,j]])
返回字符s[i],s[i+1],...,s[j]的内部数字编码。i的默认值是1;j的的默认值是i。这些索引以函数string.sub的规则修正。
local
输出结果为48 49 50 97
数字编码没有必要跨平台。
2.string.char(...)
接收零或更多的整数。返回和参数数量相同长度的字符串。其中每个字符的内部编码。其中每个字符的内部编码值等于对应的参数值。
char 将整型数字转成字符比连接,byte转换字符为整数值(可以指定某个字符,默认第一个字符)。
string.char
3.string.dump(function[,strip])
返回包含有以二进制方式表示的(一个二进制代码块)指定函数的字符串。之后可以用load调用这个字符串获得该函数的副本(但是绑定新的上值)。如果strip为真值。二进制代码块不携带该函数的