lua string库

Posted skyflybird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua string库相关的知识,希望对你有一定的参考价值。

相关的方法如下图所示:

len

string.len(s)

返回字符串s的长度

string.len(‘abcd‘)    --> 4
rep

string.rep(s,n)

返回字符串s重复n次的结果

string.rep("1",5)    --> 11111
reverse

string.reverse(s)

字符串反转

string.reverse("abcd")     

--->dcba

lower

string.lower(s)

将大写字母转换为小写字母

可用于在忽略大小写的原则下,比较字符串

string.lower("HelloLua")      

---> hello lua

string.lower(a) < string.lower(b) 

upper

string.upper(s)

将小写字母转换为大写字母

string.upper("Hello Lua")    

---> HELLO LUA

sub

string.sub(s, i, j)

从字符串s中提取[i,j]的字符,字符串的第一个字符索引为1.也可以从负数索引

来取,-1代表字符串的最后一个字符,-2代表倒数第二个字符,以此类推

如果第三个参数为空,直接默认获取最后一个

local s = "hello lua"

string.sub(s, 2,4)     --> ell

string.sub(s,-8,-6)    --> ell

string.sub(s,2)      --> ello lua

string.sub(s, -3)       --> lua

char

string.char

用于将一个或多个整数转换成对应的字符,并返回由这些字符连接而成的字符串

string.char(97)     -->a

string.char(108,111,118,101)  

--> love

byte

string.byte(s) 用于返回字符串s中第一个字符的数值显示

string.byte(s,i) 用于返回字符串s中第i个字符的数值显示 

string.byte(s,i,j) 用于返回字符串[i,j]的数值显示

由于lua语言限制了栈大小,所以也限制了返回值的最大个数,默认最大为100W个,

因此不能用于大小超过1M的字符串

string.byte(‘love‘)    --> 108

string.byte("love",1)   --> 108

string.byte("love",-4)   --> 108

string.byte("love",1,-2)  

--> 108   111   118

format

格式化字符串,与C语言中的printf的规则类似

指示符由一个百分号和一个代表格式化的字母组成,

其格式化字母d代表十进制整数,f代表浮点数,s代表字符串 x代表十六进制整数等

可用%.2f或者%0.2f来保留小数点后的数字个数

可用%2d表示用空格补齐,%04d用0补齐不足位

string.format("x = %f",1)

--->1.000000

string.format(‘x = %0.2f‘,1.234)

---->1.23

string.format("x=%.2f",1.234)

----> 1.23

string.foramt("%2d/%04d",1,2)

---->  1/0002

find

string.find(str,substr) 用于在指定字符串str搜索substr,若存在返回首尾位置,不存在返回nil

string.find("lua","lu")  --> 1   2

string.find("lua","w")     -> nil 

gsub string.gsub(str,subStr,repleaceStr) 用于在指定字符串str中将subStr替换位repleaceStr,返回新字符串且返回替换的次数

string.gsub("hello world","l","#")

--> he##o #ua      3

以上是关于lua string库的主要内容,如果未能解决你的问题,请参考以下文章

LUA string库详解

lua string库

String 库(上)

lua入门笔记7 字符串库

Lua中字符串与模式匹配(正则表达式)

快速掌握Lua 5.3 —— 字符串库