亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Lua字符串庫(string庫)學習筆記

2024-07-21 23:04:20
字體:
來源:轉載
供稿:網友

Lua 最強大的特性之一就是它的字符串處理能力,它支持字符格式化輸出,具有可擴展的模式匹配查找功能,以及一些實用的字符操作,例如查詢、截取、替換和刪除等字符串操作,這些字符串操作函數都封裝在一個名為 string 的模塊里。

Lua 里的字符索引是從 1 開始,索引值也可以是負數,這種情況將被解釋成向后索引,從字符串末尾開始算起。

下面是 Lua 5.2 提供的字符串操作函數:

byte

函數 string.byte 把字符串里的第 i 個字符轉為 ASCII 編碼,默認是輸出第一個字符的編碼(只有一個參數的話),用法:

 

復制代碼 代碼如下:

string.byte (s [, i [, j]])

 

例子:

 

復制代碼 代碼如下:

print(string.byte("abc")) //echo:97

 

print(string.byte("abc", 2))//echo:98

 

char

函數 string.char 是把一個 ASCII 編碼轉換為對應的字符,用法:

 

復制代碼 代碼如下:

string.char (asc1, ...)

 

例子:

 

復制代碼 代碼如下:

print(string.char(97)) //echo a

 

print(string.char(99, 100, 101)) //echo cde

 

dump

函數 string.dump 返回一個函數二進制形式的字符串,用法:

 

復制代碼 代碼如下:

string.dump (function)

 

參數 function 是一個 Lua 函數:

 

復制代碼 代碼如下:

function test()
    print("just a test")
end
print(string.dump(test))

 

函數 string.dump 實現了函數的序列化,函數可以很輕松的傳遞,并在其他作用域調用。函數 string.dump 出來的二進制字符串,可以用 load 函數反序列回來直接調用。

 

復制代碼 代碼如下:

function test()
    print("just a test")
end
local sd = string.dump(test)
print(sd)
local ls = load(sd)
print(ls)
ls()

 

find

函數 string.find 查找字符串 s 里第一個符合查找字符 pattern 的位置,用法:

 

復制代碼 代碼如下:

string.find (s, pattern [, init [, plain]])

 

如果找到了目標字符 pattern,則返回它的開始和結束位置:

 

復制代碼 代碼如下:

start, end = string.find("just a test", "st")
print(start, end)

 

如果沒有找到,則返回 nil:

 

復制代碼 代碼如下:

print(string.find("just a test", "dhq.me"))

 

format

函數 string.format 用于把字符串格式化輸出,用法:

 

復制代碼 代碼如下:

string.format (formatstring, ···)

string.format 函數的第一個參數是用來指定字符串的格式,例如:

 

 

復制代碼 代碼如下:

print(string.format("%s is %d", "ten", 10))

 

上面例子里的 %s 表示字符串,%d 表示數字,它們是 Lua 的格式化輸出符號。

string.format 函數的用法跟 C 語言里的 printf 函數類似,例如它可以像 printf 那樣輸出指定位數的數字:

 

復制代碼 代碼如下:

Pi = 3.1415926
print(string.format("Pi is %.2f", Pi))

 

Lua 的字符格式化輸出符號列表:

 

復制代碼 代碼如下:

.           所有字符
%a          字母
%c          控制符
%d          數字
%D          非數字
%l          小寫字母
%p          標點符號
%s          字符串
%u          大寫字母
%w          字母數字
%x          十六進制數
%z          用 0 表示的字符

 

gmatch

函數 string.gmatch 會返回一個迭代函數,尅通過該函數遍歷到一個字符串 s 中所有出現指定匹配模式 pattern 的地方,用法:

 

復制代碼 代碼如下:

string.gmatch (s, pattern)

 

例如下面是找出字符串 s 里的所有單詞:

 

復制代碼 代碼如下:

s = "just a test"
for w in string.gmatch(s, "%a+") do
    print(w)
end

 

gsub

函數 string.gsub 用于全局字符串替換,字符串 s 里滿足匹配模式 pattern 格式的字符都會被替換成 repl 參數的值,用法:

 

復制代碼 代碼如下:

string.gsub (s, pattern, repl [, n])

 

例如:

 

復制代碼 代碼如下:

print(string.gsub("just a test", "st", "*"))

 

匹配模式 pattern 可以是一個正則:

 

復制代碼 代碼如下:

s = "num is 1234567890"
print(string.gsub(s, "%d", "*"))

 

可在函數的最后加上一個可選參數 n,表示指定要替換的次數:

 

復制代碼 代碼如下:

s = "sethook, setlocal, setmetatable, setupvalue, setuservalue"
print(string.gsub(s, "s%a+", "S", 2))

 

len

函數 string.len 用于返回字符串 s 的長度,用法:

 

復制代碼 代碼如下:

string.len (s)

 

例子:

復制代碼 代碼如下:

print(string.len("abcdefg"))

 

lower

函數 string.lower 用于把字符串 s 里的字母轉為小寫,用法:

 

復制代碼 代碼如下:

string.lower (s)

 

例如:

 

復制代碼 代碼如下:

print(string.lower("AbCdEfG"))

 

match

函數 string.match 用于查找字符串 s 里第一個匹配對模式 pattern 的值,并返回匹配值,用法:

 

復制代碼 代碼如下:

string.match (s, pattern [, init])

 

上面參數 init 是可選, 表示查找過程的起點, 默認從 1 開始:

 

復制代碼 代碼如下:

print(string.match("just a test", "test"))

 

參數 patter 可以是一個正則模式:

 

復制代碼 代碼如下:

t = "today is 2003-5-31"
print(string.match(t, "%d+-%d+-%d+"))

 

如果 pattern 為空,則返回整個字符串;如果沒匹配成功,則返回 nil。

 

復制代碼 代碼如下:

print(string.match("abcdabcd", "a"))

 

rep

函數 string.rep 返回一個由分隔符 sep 隔開的重復(repeat)n 次字符 s 的字符串,用法:

 

復制代碼 代碼如下:

string.rep (s, n [, sep])

默認的分隔符 sep 是空字符。

 

 

復制代碼 代碼如下:

print(string.rep("repeat", 3))

 

reverse

函數 string.reverse 用于倒轉一個字符串 s 的排序,用法:

 

復制代碼 代碼如下:

string.reverse (s)

 

例如:

 

復制代碼 代碼如下:

print(string.reverse("reverse"))

 

sub

函數 string.sub 用于從字符串 s 里截取一個從第 i 個字符到第 j 個字符間的子字符串,用法:

 

復制代碼 代碼如下:

string.sub (s, i [, j])

例如:

 

 

復制代碼 代碼如下:

print(string.sub("abcdefg", 2, 5))

參數 i 可以是負數,這種情況下,子串的位置從字符串 s 的最后開始算起:

 

 

復制代碼 代碼如下:

print(string.sub("abcdefg", -4, -2))

參數 end 省略的話,則會返回從 i 到字符串末尾的子字符串:

 

 

復制代碼 代碼如下:

print(string.sub("abcdefg", 3))

 

upper

函數 string.upper 用于把字符串 s 里的字母轉為大寫,用法:

 

復制代碼 代碼如下:

string.upper (s)

 

例如:

 

復制代碼 代碼如下:

print(string.upper("AbCdEfG"))
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
超碰97人人做人人爱少妇| 国产精品大片wwwwww| 精品福利樱桃av导航| 日本欧美一二三区| 久久av资源网站| 在线观看国产精品淫| 97免费视频在线播放| 国产精品欧美一区二区三区奶水| 国产精品一区二区三| 欧美日韩国产123| 91亚洲国产精品| 亚洲色图日韩av| 深夜精品寂寞黄网站在线观看| 久久久精品国产| 国产精品久久久久不卡| 亚洲jizzjizz日本少妇| 欧美一级淫片videoshd| 欧美风情在线观看| 国a精品视频大全| 人人爽久久涩噜噜噜网站| 在线观看欧美日韩国产| 日韩成人网免费视频| 久久久久久国产精品三级玉女聊斋| 成人妇女淫片aaaa视频| 亚洲国内精品在线| 欧美另类极品videosbest最新版本| 精品亚洲夜色av98在线观看| 97在线日本国产| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲天堂男人天堂| 国产精品视频网| 精品一区二区电影| 国产精品久久av| 日韩在线中文字幕| 亚洲网站在线看| 欧美高清电影在线看| 日韩激情视频在线播放| 国产亚洲欧美视频| 26uuu另类亚洲欧美日本老年| 亚洲自拍小视频免费观看| 成人免费午夜电影| 欧美电影免费播放| 日韩在线中文视频| 97视频人免费观看| 亚洲第一精品夜夜躁人人爽| 亚洲色无码播放| 欧美国产日韩中文字幕在线| yellow中文字幕久久| 国外成人在线播放| 91亚洲精品在线观看| 国产精品大片wwwwww| 成人激情视频在线播放| 国产精品丝袜久久久久久高清| 91精品国产91久久| 精品调教chinesegay| 亚洲18私人小影院| 精品五月天久久| 亚洲国产婷婷香蕉久久久久久| 国产精品免费久久久| 中文字幕欧美日韩在线| 综合网日日天干夜夜久久| 97色伦亚洲国产| 中文字幕亚洲欧美在线| 日韩中文字幕免费看| 日韩精品在线视频观看| 98精品国产高清在线xxxx天堂| 国产精品中文在线| 日韩电影中文字幕在线观看| 日韩精品免费在线视频观看| 欧美激情在线有限公司| 91亚洲午夜在线| 国产精品流白浆视频| 日韩精品免费综合视频在线播放| 一区二区三区视频在线| 成人国产精品久久久久久亚洲| 久久久久久久国产| 亚洲精品视频久久| 午夜精品一区二区三区在线视频| 美女撒尿一区二区三区| 欧美精品aaa| 欧美日韩免费在线观看| 国产区精品在线观看| 国产精品激情av电影在线观看| 日韩大陆毛片av| 日韩av电影手机在线观看| 91香蕉亚洲精品| 国产精品精品视频一区二区三区| 色偷偷av一区二区三区乱| 久久久精品一区| 欧美日产国产成人免费图片| 亚洲欧美制服丝袜| 亚洲精品视频网上网址在线观看| 久久视频中文字幕| 国产69精品久久久| 粉嫩av一区二区三区免费野| 国产日韩欧美影视| 中文字幕精品久久久久| 亚洲国产中文字幕在线观看| 精品动漫一区二区三区| 亚洲色图第三页| 亚洲国产中文字幕久久网| 欧美日韩福利在线观看| 亚洲天堂网站在线观看视频| 国产精品成人观看视频国产奇米| 国产精品成人aaaaa网站| 精品亚洲男同gayvideo网站| 久久人人爽人人爽人人片av高请| 欧洲美女7788成人免费视频| 欧美激情免费在线| 国产精品人成电影在线观看| 久久久99久久精品女同性| 国产精品成人一区二区三区吃奶| 91久久精品美女高潮| 久久综合久中文字幕青草| 91视频88av| 国产精品黄视频| 国产午夜精品久久久| 日韩中文在线观看| 亚洲天堂开心观看| 欧美日韩美女在线| 国产在线观看不卡| 国产在线观看一区二区三区| www日韩中文字幕在线看| 国内外成人免费激情在线视频| 欧美影院久久久| 97视频在线观看视频免费视频| 伊人久久大香线蕉av一区二区| 在线日韩日本国产亚洲| 日韩av不卡电影| 一区二区三区日韩在线| 日本aⅴ大伊香蕉精品视频| 国产精品黄视频| 亚洲一区二区日本| 欧美成人性生活| 国产亚洲欧洲黄色| 国内精品模特av私拍在线观看| 国产欧美日韩免费| 久久理论片午夜琪琪电影网| 国模极品一区二区三区| 久久国产精品久久久久久久久久| 在线观看国产精品日韩av| www亚洲精品| 成人国产精品一区| 欧美日韩国产综合视频在线观看中文| 性色av一区二区三区红粉影视| 国产精品jvid在线观看蜜臀| 久热爱精品视频线路一| 国产欧美日韩免费| 国产亚洲精品久久久久久| 成人写真视频福利网| 69**夜色精品国产69乱| 美日韩精品免费观看视频| 秋霞成人午夜鲁丝一区二区三区| 亚洲国产成人爱av在线播放| 日韩在线一区二区三区免费视频| 久久这里有精品| 亚洲成人精品视频在线观看| 欧美成人在线影院| 18一19gay欧美视频网站| 久久久国产91| 国产精品美腿一区在线看| 51午夜精品视频| 国产精品欧美日韩一区二区| 中日韩美女免费视频网址在线观看|