字串是用於表示文字的手段。lua語言提供的字串是由一串位元組組成的序列。每個字元用8個位元位來儲存。雖然lua支援用任意一種方法來儲存unicode字串,但是最好在一切可能的情況下優先使用utf-8編碼。、
需要注意的是lua中的字串是不可變值,不能直接修改字串中的某個字元,僅能通過建立乙個新的字串來達到目的。
a = "one string"
b = string.gsub(a, "one", "another")
print(a) --> one string
print(b) --> another string
字串可以通過..連線符做連線操作。lua語言提供了數值與字串之間的自動轉換。但如果想要顯示地將字串轉換為數值可以呼叫tonumber函式。同樣的tostring函式則可以將數值轉換成字串。需要注意的是,比較操作符不會進行強制型別轉換。
lua同時提供了乙個字串標準庫用作處理字串。string.sub(s, i, j)從字串s中提取到第i個字元到第j個字元。
string.char 和 string.byte用於轉換字元及其內部數值表示。
string.format則是提供了將字串格式化和將數值輸出為字串的強大工具
string.gsub把匹配的字串進行替換。
string.gsub("hello world", "l", ".") --he..o wor.d 3
string.gsub("hello world", "ll", "..") --he..o world 1
string.gsub("hello world", "a", ".") --hello world 0
utf-8是web環境中用於unicode的主要編碼之一,它使用變長的多個位元組來編碼乙個unicode字元。具體來說, utf-8使用乙個位元組表示所有ascii字元,對於其他位元組則用位元組序列表示.
字串標準庫為我們提供了處理utf-8字串的能力。 針對乙個字元的標準庫函式將不再適用。
string.len和string.sub都可以正常使用
utf8.char 和 utf8.codepoint模擬於 string.char 和 string.byte.
utf8標準庫有乙個函式utf8.codes, 該函式可用於遍歷utf-8字串中的每乙個字元
for i, c in utf8.codes("utf-8字串") do
print(i,c)
end
Lua程式設計(四)物件導向類繼承
1.類繼承 sharp 父類 function sharp new local new sharp self.index self self sharp setmetatable new sharp,self return new sharp endfunction sharp sharp func...
Lua程式設計(三)
通過昨天用lua程式語言解決八皇后問題,我對於lua語言的程式編寫有了大致的了解。今天開始了解lua的數值相關概念。在lua5.3中為數值格式提供了兩種選擇 一種為64位的integer型別,另一種則是雙精度的float型別。如果是資源受限的平台,如微控制器等我們可以使用精簡的32位數值格式。lua...
Lua程式設計(七)
函式是對語句和表示式進行抽象的主要方式,呼叫函式時應使用一堆圓括號把引數列表括起來,即使不需要引數,也需要一對空括號 lua語言也為物件導向風格的呼叫 object oriented call 提供了冒號操作符。形如 o foo x 意為呼叫物件o的foo方法。乙個函式定義具有乙個函式名 name ...