zoukankan      html  css  js  c++  java
  • 【lua】如何倒序查找字符

      现在有这样一个需求,有一个字符串,需要查找字符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, "/"))

      输出:

  • 相关阅读:
    OpenCV基本函数学习
    OpenCV:概述、结构和内容
    NS2典型例子简单分析
    NS2仿真过程中需要的语言及基本组件
    洛谷 P2393 yyy loves Maths II
    洛谷 P1922 女仆咖啡厅桌游吧
    洛谷 P2559 [AHOI2002]哈利·波特与魔法石
    洛谷 P1301 魔鬼之城
    洛谷 P2383 狗哥玩木棒
    洛谷 P2298 Mzc和男家丁的游戏
  • 原文地址:https://www.cnblogs.com/linxiong945/p/4107022.html
Copyright © 2011-2022 走看看