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, "/"))

      输出:

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/linxiong945/p/4107022.html
Copyright © 2011-2022 走看看