前言
字符串操作是 区分大小写的
一、字符串赋值
“” or ‘’ 双引号或单引号 都表字符串
string1 = "a"
string2 = 'b'
print(string1,string2) --输出 a b
二、字符串组拼
-- ..才是字符串组拼
string1 = "1"
string2 = '2'
string3 = string1..string2
print(string3) --输出 20
三、字符串加法
print('2'+'7') --输出9
--print('2'+'7a') --报错,因为7a转化是string 而不是number
print('2+7') --输出 2+7,不做运算
print('2e2'+'7') --输出 207,2e2符合科学计数法,可以运算
四、字符串的长度
string1 = 'abcd'
print(#string1) --输出 4
str = "My Name is Kami"
s1 = string.len(str)
print(s1) --输出 15
五、字符串大小写转换
str = "My Name is Kami"
s1 = string.upper(str) --大写
print(s1) --输出 MY NAME IS KAMI
s1 = string.lower(str) --小写
print(s1) --输出 my name is kami
六、字符串替换
str = "My Name is Kami"
s1 = string.gsub(str,"a","A") --字符串替换
print(s1) --输出 My NAme is KAmi
s1 = string.gsub(str,"a","A",1) --最后一个参数表示替换的次数
print(s1) --输出 My NAme is Kami
七、字符串查找索引
str = "My Name is Kami"
s1 = string.find(str,"na") --查找索引
print(s1) --输出 nil
s1 = string.find(str,"Na")
print(s1) --输出 4
s1 = string.find(str,"Na",20) --最后一个参数表示,从第几个索引开始查找
print(s1) --输出 nil
s1 = string.find(str,"Na",3)
print(s1) --输出 4
八、字符串反转
str = "My Name is Kami"
s1 = string.reverse(str) --字符串反转
print(s1) --输出 imaK si emaN yM
九、字符串格式化
str = "My Name is Kami"
s1 = string.format(str.."= %d ",1)
print(s1) --输出 My Name is Kami= 1
s1 = string.format(str.."= %s ","a")
print(s1) --输出 My Name is Kami= a
s1 = string.format(str.."= %d %02d %03d %04d %05d %d %f",1,2,3,0.4,0.5,0.6,0.7) --%0 补充位数
print(s1) --输出 My Name is Kami= 1 02 003 0000 00000 0 0.700000
s1 = string.format(str.."= %f",1)
print(s1) --输出 My Name is Kami= 1.000000
s1 = string.format(str.."= %3f",1.2)
print(s1) --输出 My Name is Kami= 1.200000
s1 = string.format(str.."= %0.3f",1.2)
print(s1) --输出 My Name is Kami= 1.200
s1 = string.format(str.."= %3.3f",1212.2)
print(s1) --输出 My Name is Kami= 1212.200
s1 = string.format(str.."= %2f",1212.2)
print(s1) --输出 My Name is Kami= 1212.200000
十、将整型数字转成字符
s1 = string.char(97)
print(s1) -- 输出 a
s1 = string.char(97,98,99,100) --将整型数字转成字符并连接
print(s1) -- 输出 abcd
s1 = string.byte("ABCD") --默认第一个字符
print(s1) -- 输出 65
s1 = string.byte("ABCD",4) --转换字符为整数值(可以指定某个字符,默认第一个字符)。
print(s1) -- 输出 68
s1 = string.char(120)
print(s1) -- 输出 x
s1 = string.byte("q")
print(s1) -- 输出 113
十、字符串n次拷贝
str = "My Name is Kami"
s1 = string.rep(str,3)
print(s1) -- 输出 My Name is KamiMy Name is KamiMy Name is Kami
十一、字符串截取
str = "My Name is Kami"
s1 = string.sub(str,1,2)
print(s1) -- 输出 My
str = "710.5"
s1 = string.sub(str,4,5)
print(s1) -- 输出 .5
十二、字符串格式化其他操作
s1 = string.format("%c", 83) -- 输出S
print(s1)
s1 = string.format("%+d", 17.0) -- 输出+17
print(s1)
s1 = string.format("%05d", 17) -- 输出00017
print(s1)
s1 = string.format("%o", 17) -- 输出21
print(s1)
s1 = string.format("%u", 3.14) -- 输出3
print(s1)
s1 = string.format("%x", 13) -- 输出d
print(s1)
s1 = string.format("%X", 13) -- 输出D
print(s1)
s1 = string.format("%e", 1000) -- 输出1.000000e+03
print(s1)
s1 = string.format("%E", 1000) -- 输出1.000000E+03
print(s1)
s1 = string.format("%6.3f", 13) -- 输出13.000
print(s1)
s1 = string.format("%q", "One\nTwo") -- 输出"One\
-- Two"
print(s1)
s1 = string.format("%s", "monkey") -- 输出monkey
print(s1)
s1 = string.format("%10s", "monkey") -- 输出 monkey
print(s1)
s1 = string.format("%5.3s", "monkey") -- 输出 mon
print(s1)