在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
现在有这样一个需求,有一个字符串,需要查找字符i最后出现的位置,不过相对于其他语言来说,Lua并没有提供这一操作,那么如何是好? 现在有这样几个方法: string.sub(str, i ,j) 功能:截取str以i开始j结束的部分 string.reverse(str) 功能:将str倒序输出 string.len(str) 功能:返回str的长度 string.find(str, pattern, init, plain) 功能:查找到指定字符在str的起始位置。其中str为源字符串,pattern为需要查找的字符,init为开始查找的位置,在Lua中,"1,2"表示从开始起,"-1,-2"表示从结尾起。 好了,了解了这几字符串操作方法就可以来做事了: 可以这么来构想,如果要查询字符i在字符串str中最后出现的位置,可以先把str反转,然后从头开始查找i的位置,再用字符串str的长度减去反转后查找到的位置(这里得加上1),这样就可以知道字符i在字符串str中倒序查找的位置了。 试一试吧: 1 str = "/www/var/tmp/temp.lua" 2 3 function subString(str, k) 4 ts = string.reverse(str) //反转字符串str 5 _, i = string.find(ts, k) //获取k在反转后的str字符串ts的位置 6 m = string.len(ts) - i + 1 //获取k在字符串str中的位置 7 8 return string.sub(str, 1, m) //返回字符串str字符k之前的部分 9 end 10 11 print(subString(str, "/")) 输出: |
请发表评论