使用lua實(shí)現(xiàn)split字符串分隔
LUA并不象其它許多"大而全"的語言那樣,包括很多功能,比如網(wǎng)絡(luò)通訊、圖形界面等。但是LUA可以很容易地被擴(kuò)展:由宿主語言(通常是C或C++)提供這些功能,LUA可以使用它們,就像是本來就內(nèi)置的功能一樣。LUA只包括一個(gè)精簡(jiǎn)的核心和最基本的庫。這使得LUA體積小、啟動(dòng)速度快,從而適合嵌入在別的程序里。因此在lua中并沒有其他語言那樣多的系統(tǒng)函數(shù)。習(xí)慣了其他語言的字符串分割函數(shù),與是就自己寫了一個(gè),記錄在此,以備使用.
下面在簡(jiǎn)單介紹下lua:
Lua 是一個(gè)小巧的腳本語言。作者是巴西人。該語言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。
Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過來調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和維護(hù)。
Lua由標(biāo)準(zhǔn)C編寫而成,代碼簡(jiǎn)潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯,運(yùn)行。
一個(gè)完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
function Split(str, delim, maxNb)
-- Eliminate bad cases...
if string.find(str, delim) == nil then
return { str }
end
if maxNb == nil or maxNb < 1 then
maxNb = 0 -- No limit
end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastPos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastPos = pos
if nb == maxNb then break end
end
-- Handle the last field
if nb ~= maxNb then
result[nb + 1] = string.sub(str, lastPos)
end
return result
end
相關(guān)文章
Lua的編譯、執(zhí)行和調(diào)試技術(shù)介紹
這篇文章主要介紹了Lua的編譯、執(zhí)行和調(diào)試技術(shù)介紹,本文著重講解了對(duì)錯(cuò)誤的處理,另外也講解了編譯和執(zhí)行等知識(shí),需要的朋友可以參考下2015-04-04Lua中函數(shù)與面向?qū)ο缶幊痰幕A(chǔ)知識(shí)整理
函數(shù)在面對(duì)對(duì)象的編程中又被叫做方法,會(huì)受到作用域的制約,Lua中具有類等面向?qū)ο蟮奶匦?接下來我們就來看一下Lua中函數(shù)與面向?qū)ο缶幊痰幕A(chǔ)知識(shí)整理2016-06-06Lua中的loadfile、dofile、require詳解
這篇文章主要介紹了Lua中的loadfile、dofile、require詳解,本文分別用實(shí)例講解它的用法和特點(diǎn)等內(nèi)容,需要的朋友可以參考下2014-09-09