Lua string库

string 长度

str = "abc"
print(#str)  --3

 

string库

string.byte (s [, i [, j]])

返回字符 s[i], s[i+1], ... ,s[j] 的内部数字编码。 i 的默认值是 1 ; j 的默认值是 i。 这些索引以函数 string.sub 的规则修正

g1,g2,g3 = string.byte("abcdef",1,3)
print (g1,g2,g3)    --97    98    99

string.char (···)

接收零或更多的整数。 返回和参数数量相同长度的字符串。 其中每个字符的内部编码值等于对应的参数值

s = string.char(97,98,99)
print(s)            --abc

string.dump (function [, strip])

返回包含有以二进制方式表示的(一个 二进制代码块 )指定函数的字符串

string.find (s, pattern [, init [, plain]])

查找第一个字符串 s 中匹配到的 pattern (参见 §6.4.1)。 如果找到一个匹配,find 会返回 s 中关于它起始及终点位置的索引; 否则,返回 nil。 第三个可选数字参数 init 指明从哪里开始搜索; 默认值为 1 ,同时可以是负值。

 

txt = "he's very very good!"
i  = string.find(txt, "very",10)
print(i)  --11

string.format (formatstring, ···)

返回不定数量参数的格式化版本, 格式化串为第一个参数(必须是一个字符串)

print(string.format("he want %d apples", 5))
print(string.format("he want %s apples", "three"))

string.gmatch (s, pattern)

这个函数基本就是用来配合for循环使用的,返回一个迭代器函数,每次调用这个迭代器函数都会返回一个匹配该字符串的值。

s = "hello world from Lua"
for w in string.gmatch(s, "%a+") do
    print(w)    --连续输出每个单词
end

string.gsub (s, pattern, repl [, n])

string.gsub 函数有三个参数:目标串,模式串,替换串。
基本作用是用来查找匹配模式的串,并将使用替换串其替换掉: 

API对这个介绍的很详细,可参照API

s = string.gsub("Lua is good", "good", "bad") 
print(s)   --> Lua is bad

string.len (s)

接收一个字符串,返回其长度

 内嵌零也统计在内,因此 "a\000bc\000" 的长度为 5 

 

string.lower (s)

将字符串转换为小写

string.upper (s)

将字符串转换为大写

print(string.len("abcde"))        --5
print(string.lower("MAC"))    --mac
print(string.upper("2abAB"))    --2ABAB

string.match (s, pattern [, init])

在字符串 s 中找到第一个能用 pattern 匹配到的部分。 如果能找到,match 返回其中的捕获物; 否则返回 nil 

print(string.match("i is a boy","n"));

 

string.rep (s, n [, sep])

返回 n 个字符串 s 以字符串 sep 为分割符连在一起的字符串

print(string.rep("s", 4,"-"))        --s-s-s-s
print(string.rep("ab", 3))            --ababab

string.reverse (s)

返回字符串 s 的翻转串

 

string.sub (s, i [, j])

截取字符串

print(string.sub("abcdefg", 1,3))        --abc

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值