Lua的string學習筆記

2021-07-03 12:52:33 字數 2497 閱讀 7333

1.字元轉換成數字   使用tonumber(類似c裡面的atoi)

mystr = "6"

mynum = tonumber(mystr)

print(mynum)

2.數字轉換成字元竄    使用tostring (類似c裡面的itoa)

mynum = 8

mystr = tostring(mynum)

print(mystr)

print(type(mystr)) --type()可以輸出變數型別

3.根據ascii編碼返回傳入引數對應的字元,string.char(...)

a = string.char(0x31,0x32,0x41)

print(a) --"12a"

4.返回字元竄的長度  string.len() 

str = "hello world"

print(string.len(str))

5.根據指定起始位置來剪下乙個字元竄,string.sub(string, nstart, nend)

str = "hello world"

newstr = string.sub(str,3,5)

print(newstr) -- "llo"

假如現在我想取到乙個字元竄的後面3個字元,那麼我可以這樣來做

str = "hello world"

newstr = string.sub(str,-3,string.len(str))

print(newstr) --"rld"

或者你可以用一種更簡單的方法,直接省去nend這個引數,效果都是一樣的。

6.string.fomat()  用於字元竄拼接(類似於sprintf)

string1 = "hello"

string2 = "world"

num = 123

print(string.format("%s %d %s",string1,num,string2)) --"hello 123 world"

7.string.find()

local str = "hello"

local i,j = string.find(str, "hello") -- 返回hello在str的起始位置和終止位置

print(i, j)

--如果沒有匹配到則返回nil

還可以這樣用:

string.find函式具有乙個第三引數,他是乙個索引,告訴函式應該從目標字元竄的**開始搜尋.

使用正則

local str = "hello123world"

local i,j = string.find(str, "%d+")

print(i, j) --6 8

8.match()

注意:返回的是目標字元竄與模式相匹配的那個部分,並不是位置。也就是說返回的還是乙個字元竄

local str = "liuxinxia123456789hahahah"

substr = string.match(str, "%d+")

print(substr) --123456789

local i, j =string.find(str, "%d+")

substr =string.sub(str, i, j) -- 確定起始位置 返回乙個字元竄

print(substr)

9.gsub()

string.gsub有3個引數:目標字串、模式和替換字串。它的基本用法是將目標字串中所有出現模式的地方替換為目標字串。來看一段簡短的**,就什麼都明白了。

local str = "hello world"

local strresult = string.gsub(str, "hello", "jelly")

print(strresult) -- jelly world

另外gsub還有可選的第四個引數,可以限制替換的次數。示例**如下:

local str = "hello world"

-- 這裡不限制替換次數

local strresult, cnt = string.gsub(str, "l", "o")

print(strresult) -- heooo worod

print(cnt) -- 實際替換的次數

-- 開始限制替換次數

strresult, cnt = string.gsub(str, "l", "o", 1)

print(strresult) -- heolo world

print(cnt) -- 就替換了一次

Lua學習筆記 lua堆疊

首先了解一下c 與lua之間的通訊 假設在乙個lua檔案中有如下定義 hello.lua檔案 請注意紅色數字,代表通訊順序 1 c 想獲取lua的myname字串的值,所以它把myname放到lua堆疊 棧頂 以便lua能看到 2 lua從堆疊 棧頂 中獲取myname,此時棧頂再次變為空 3 lu...

lua學習筆記

近日時間比較充裕,學習一下lua語言,順便寫下筆記,方便以後加深學習。c c 呼叫lua動態庫及標頭檔案位址 用於c c 嵌入lua指令碼解析 也可以到或找適合自己的版本。一 hello world 哈哈,先使用經典的hello world帶進門 1.在 執行 鍵入cmd開啟dos視窗,並將當前目錄...

Lua 學習筆記

1 關於table lua 中的 table 是python 中的 list 和 dict 的混合體。t 相當於 t 簡單的看,實際上完全相當於 python 中的 dict 不過實際對於鍵為整數的,是放在 list 中的,方便快速索引。當然基於節省記憶體的考量,對於跳躍的大整數鍵,依然是放在 di...