lua中sring字符串包理解和使用

local string = require("string")

--string.format( "formatstring",... ) 格式化输出字符串

local s = string.format("%s is good language", "lua")

print("s = ", s)

local s1 = string.format("%s is good language", "c")

print("s1 = ", s1)

local s2 = string.format("%s is good language", "java")

print("s2 = ", s2)

--string.byte(s, i, j) 函数用于获取字符串中每个字符的ASCII码值

print("byte = ", string.byte("abc",1,3))

--string.char(byte, ...) 返回字节对应的字符

print("char = ", string.char(97, 98, 99))

--string.find(s, pattern, init, plain) 查找字符串出现的位置

-- s 原字符串

-- pattern 正则

-- init 指定了搜索的起始位置,默认为 1,可以一个负数,表示从后往前数的字符个数。

-- plain 表示是否使用简单模式,默认为 false,true 只做简单的查找子串的操作,false 表示使用使用正则模式匹配

print("find = ", string.find("abcad",'a', 2))

--string.gmatch(s, pattern, init)

--获取匹配到的值,是个数组

local s ="hello world from Lua"

for w in string.gmatch(s, "%a+") do

    print("gmatch = ", w)

end

--string.gsub(s, pattern, repl, n)

--在字符串中替换

--s原字符串

--pattern 需要替换的子串

--repl 替换的字符串

--替换数量

print("gsub = ", string.gsub("aaaa","a","z",3))

--string.len(s)

--返回字符串长度

print("len = ", string.len("aa
"))

--string.upper(s)

--返回大写字符串

print("upper = ",string.upper('aaa'))

--string.lower(s)

--返回小写字符串

print("lower = ",string.lower('AAA'))

--string.match(s, pattern, init)

--从字符串中匹配符合的子串

--s原字符串

--pattern 正则

--init 可选 从什么位置开始匹配

print("match", string.match("I have 2 questions for you.", "%d+ %a+"))

--string.rep(s, n, sep)

--返回字符串string的n个拷贝

--s 原字符串

--n 数量

--sep 分隔符

print("rep =", string.rep("abc", 2, '|'))

--string.reverse(s)

--字符串反转

print("reverse = ", string.reverse("abc"))

--string.sub(s, i, j)

--截取字符串

--s 原字符串

--i 起始位置

--j 结束位置

print("sub = ", string.sub("abc",1,1))

--string.pack(fmt, v1, v2, ...)

--用于将一组数据打包成一个二进制字符串

--fmt格式化字符

-- > 大端 < 小端

print("pack = ",string.pack(">i3",10))

--string.unpack(fmt, s, pos)

--用于将字符串解包

--fmt格式化字符

-- > 大端 < 小端

print("unpack = ", string.unpack(">i3",string.pack(">i3",10)))

--string.packsize(fmt)

--打包大小

print("packsize = ",string.packsize(">i3"))