lua 字符串使用

 

 1 --常见字符串功能
 2 local function Test1()
 3     --大小写
 4     assert("AA" == string.upper("aa"))
 5     assert("aa" == string.lower("AA"))
 6     
 7     --字符串长度
 8     assert(2 == string.len("aa"))
 9     assert(6 == string.len("abc123"))
10     assert(6 == string.len("中文"))
11     
12     --char->ascii
13     assert("a" == string.char(97))
14     assert("abc" == string.char(97, 98, 99))
15     
16     --ascii->char
17     assert(97 == string.byte("a"))
18     assert(98 == string.byte("abc", 2))
19     
20     --拼接
21     local str1 = "aa"
22     local str2 = "bb"
23     assert("aabb" == str1 .. str2)
24     
25     --table方式的拼接
26     assert("abc1中文" == table.concat({"a", "bc", 1, "中文"}))
27     
28     --替换
29     assert("啊bc123_啊1" == string.gsub("abc123_a1", "a", ""))
30     assert("啊bc123_a1" == string.gsub("abc123_a1", "a", "", 1))
31     assert("abc123_a1" == string.gsub("abc123_a1", "a", "", 0))
32     
33     --查找(开始、结束位置)
34     assert(2,3 == string.find("abc123", "bc"))
35     assert(nil == string.find("abc123", "bd"))
36     assert(4, 9 == string.find("你好中国", "好中"))
37     assert(2,3 == string.find("abc123", "bc", 2))
38     assert(nil == string.find("abc123", "bc", 3))
39     assert(2,3 == string.find("abc123", "bc", 1, false)) --false参数表示不要启用模式匹配
40     
41     --子串, 裁剪
42     assert("ab" == string.sub("abc中文123", 1, 2))
43     assert("" == string.sub("abc中文123", 4, 6))
44     assert("c12" == string.sub("abc123", 3, -2))
45     assert("23" == string.sub("abc123", -2))
46     assert("12" == string.sub("abc123", -3, -2))
47     
48     --反转
49     assert("cba" == string.reverse("abc"))
50 end
51 Test1()

 

 

 1 ---格式化输出
 2 local function TestFormat()
 3     assert("a1" == string.format("%s%s", "a", 1))
 4     assert("  abc" == string.format("%5s", "abc"))
 5     assert("   ab" == string.format("%5.2s", "abc"))
 6     
 7     assert("a" == string.format("%x", 10)) --小写16进制
 8     assert("A" == string.format("%X", 10)) --大写16进制
 9     
10     assert("7" == string.format("%o", 7)) --8进制
11     assert("10" == string.format("%o", 8)) --8进制
12     assert("11" == string.format("%o", 9)) --8进制
13     assert("17" == string.format("%o", 15)) --8进制
14     assert("20" == string.format("%o", 16)) --8进制
15     
16     assert("05" == string.format("%02d", 5))
17     assert(" 5" == string.format("%2d", 5))
18     assert("10" == string.format("%02d", 10))
19     
20     assert(" 12.00" == string.format("%6.2f", 12)) --保留2个小数, 不足6位时在前面填充空格
21     assert(" 12.12" == string.format("%6.2f", 12.123))
22 end
23 TestFormat()

 

posted @ 2021-11-13 21:06  yanghui01  阅读(92)  评论(0编辑  收藏  举报