1. 程式人生 > >lua string庫

lua string庫

abcd 空格 reverse 數值 cal 忽略 個數 補齊 nbsp

相關的方法如下圖所示:

len

string.len(s)

返回字符串s的長度

string.len(‘abcd‘)    --> 4
rep

string.rep(s,n)

返回字符串s重復n次的結果

string.rep("1",5)    --> 11111
reverse

string.reverse(s)

字符串反轉

string.reverse("abcd")     

--->dcba

lower

string.lower(s)

將大寫字母轉換為小寫字母

可用於在忽略大小寫的原則下,比較字符串

string.lower("HelloLua")      

---> hello lua

string.lower(a) < string.lower(b) 

upper

string.upper(s)

將小寫字母轉換為大寫字母

string.upper("Hello Lua")    

---> HELLO LUA

sub

string.sub(s, i, j)

從字符串s中提取[i,j]的字符,字符串的第一個字符索引為1.也可以從負數索引

來取,-1代表字符串的最後一個字符,-2代表倒數第二個字符,以此類推

如果第三個參數為空,直接默認獲取最後一個

local s = "hello lua"

string.sub(s, 2,4)     --> ell

string.sub(s,-8,-6)    --> ell

string.sub(s,2)      --> ello lua

string.sub(s, -3)     --> lua

char

string.char

用於將一個或多個整數轉換成對應的字符,並返回由這些字符連接而成的字符串

string.char(97)     -->a

string.char(108,111,118,101)  

--> love

byte

string.byte(s) 用於返回字符串s中第一個字符的數值顯示

string.byte(s,i) 用於返回字符串s中第i個字符的數值顯示

string.byte(s,i,j) 用於返回字符串[i,j]的數值顯示

由於lua語言限制了棧大小,所以也限制了返回值的最大個數,默認最大為100W個,

因此不能用於大小超過1M的字符串

string.byte(‘love‘)    --> 108

string.byte("love",1)   --> 108

string.byte("love",-4)   --> 108

string.byte("love",1,-2)  

--> 108 111 118

format

格式化字符串,與C語言中的printf的規則類似

指示符由一個百分號和一個代表格式化的字母組成,

其格式化字母d代表十進制整數,f代表浮點數,s代表字符串 x代表十六進制整數等

可用%.2f或者%0.2f來保留小數點後的數字個數

可用%2d表示用空格補齊,%04d用0補齊不足位

string.format("x = %f",1)

--->1.000000

string.format(‘x = %0.2f‘,1.234)

---->1.23

string.format("x=%.2f",1.234)

----> 1.23

string.foramt("%2d/%04d",1,2)

----> 1/0002

find

string.find(str,substr) 用於在指定字符串str搜索substr,若存在返回首尾位置,不存在返回nil

string.find("lua","lu")  --> 1 2

string.find("lua","w") -> nil

gsub string.gsub(str,subStr,repleaceStr) 用於在指定字符串str中將subStr替換位repleaceStr,返回新字符串且返回替換的次數

string.gsub("hello world","l","#")

--> he##o #ua 3

lua string庫