之前有提到在做一些自訂或別人定義的protocol時會常需要使用string來組一些binary資料,因此string的各種操作就顯示蠻重要的
-----
string.byte 字串轉為byte array table
print(string.byte("abcde")) --> 97
print(string.byte("abcde", 3)) --> 99 也就是 'c'
print(string.byte("abced", 2, 4)) --> 98 99 101
------
string.char() --> 這是最重要,目前最常用的
string.char(0, 65)
--> 得到的一個string,由binary的0, 65組成 (注意是10進制的!)
------
string.len(str) 取得字串長度
------
string.rep( s, n ) 也是個方便常用的東西,測試要填重複資料時蠻好用的
print(string.rep("123_", 4))
--> 結果 123_123_123_123_
------
string.sub( s, i [, j] )
print(string.sub("abcde", 3, 4))
-->結果為 cd
------
string.upper(str) / string.lower(str)
即全變大寫 / 小寫
---------
string.find( s, pattern [, init [, plain], ] )
--> pattern 的表示方式應該蠻重要的,晚一點再多寫點範例
print(string.find("abc_123", "abc")) --> 1 3 回傳找到字串的起始index、結束index
print(string.find("abc_123", "abc", 3)) --> nil 從index=3開始找,找不到就回傳 nil
--------
string.format( formatstring [, ...] )
print(string.format('%d, %x, %X, %.4f', 10, 10, 10, 10/3))
--> 10, a, A, 3.3333
-------
string.match( s, pattern [, init] ) 在s中找pattern是否在,若有就回傳些相符的string
print(string.match('time is 2015/10/3 12:15:30', '%d+/%d+/%d'))
--> 得到 2015/10/3
-------
string.gmatch( s, pattern ) 疊代回傳所有相符的string
還不是很會用,先寫個範例
str = "it a big apple"
for item in string.gmatch(str, '%a+') do
print(item)
end
--[[回傳結果
it
a
big
apple
]]
沒有留言:
張貼留言