現在有這樣乙個需求,有乙個字串,需要查詢字元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, "/"))
qt sql 查詢 正序,倒序
qstring str qstring select date,time,people,event from tb log where people 1 order by date desc limit 0,2000 arg 模式 order by time desc qsqlquery query...
字串倒序
題目描述 給定任意乙個字串序列,將該字串在原有的儲存空間內倒序。輸入輸入乙個字串,如 abcdefg123 輸出輸出倒序後的字串,如 321gfedcba 樣例輸入 abcdefg123 樣例輸出 321gfedcba 提示1.編寫乙個 main 函式實現該功能演算法。地區 南京研究所 public...
字串倒序
string 倒序,利用string是tochararray,在倒序輸出 private static void reversestring1 string str 利用string提供的substring 方法,利用遞迴的方法倒序字串 private static void reversestri...