Lua數學庫和字串庫小結

2021-08-20 09:44:51 字數 1761 閱讀 9938



1、math.random  用於生成偽隨機數  1、不提供引數   返回乙個區間[0,1)內均勻分布的偽隨機實數

2、引數n   返回區間[1,n]內的偽隨機數

3、同理。引數m和n   [m,n]

2、randomseed   用於設定偽隨機數生成器的種子數,它的唯一引數就是這個種子數。

對於乙個遊戲來說每次都會得到相同的場景,對此使用當前時間作為種子數:

math.randomseed(os.time())  os.time()返回當前時間的數字,這個數字表示從某個時間點開始開始至今的秒數。

3、字串庫

string.len

獲取字串長度

string.upper           小寫轉換成大寫字母

string.lower         大寫轉換成小寫字母

string.rep(s,n)        返回字串s重複n次的結果  

string.sub(s,i,j)

提取s字串從i到j的字串1、(s,1,j)提取從第1位開始到長度為j的部分 2、(s,j,-1)提取從j個字串開始到結束的部分

eg:(s,2,-2)從第二個開始到倒數第二個的部分

string.byte

用於轉換字元和內部數值表示     (還可接受三個引數(s,i,j)返回i到j區間的所有字元的表示值)包括ij

eg: print(string.byte("abc"))       >>>97

print(string.byte("abc",2))    >>>98

print(string.byte("abc",-1))   >>>99

string.char

同上   print(string.char(97))             >>> a

(string.byte和string.char   實現   ==>>   (ascii轉換))

string.format         格式化字串   eg:%d  十進位制 %x 十六進製制 %o 八進位制 

eg:print(string.format("pi = %.4f",math.pi))   >>> pi = 3.1416

模式匹配

string.find             給定目標字串找到相同的字串  找到模式後返回兩個值乙個起始值乙個結束值 

eg:s = "hello world"

i,g  = string.find(s,"hello")   >>> 1,5     i,g  = string.find(s,"l")   >>> 3,3     

string.match         與find相似,不同之處是返回目標字串與模式匹配的字串,而非該模式所在的位置

local date = "today is 17/3/1563"

d = string.match(date,"%d+/%d+/%d+")     print(d)  >>> 17/3/1563

string.gsub        有三個引數(

目標字串,模式,替換字串

) 將目標中出現模式的地方替換為替換字串(最後乙個引數)

(可有第四個引數,限制替換次數)

eg: s = string.gsub("lua is great","great","cute")      print(s)  >>> lua is cute

string.gmatch       返回乙個函式,通過這個函式可以遍歷到乙個字串中所有出現的指定模式的地方

字串和printf函式學習小結

示例 include int main void printf 名字 s性別 s年齡 d n 徐大雁 不明,嘿嘿 2008 printf 徐大雁智商 0.4f n 5.3324887 printf btc t eth t eos t n printf btcc t ethh t eoss t n r...

Lua數學庫(標準庫相關)

在這一章中 下面關於標準庫的幾章中同樣 我的主要目的不是對每乙個函式給出完整地說明,而是告訴你標準庫能夠提供什麼功能。為了能夠清楚地說明問題,我可能會忽略一些小的選項或者行為。主要的思想是激發你的好奇心,這些好奇之處可能在參考手冊中找到答案。數學庫由算術函式的標準集合組成,比如三角函式庫 sin,c...

Lua中的字串函式庫

lua直譯器對字串的支援很有限。乙個程式可以建立字串並連線字串,但不能擷取子串,檢查字串的大小,檢測字串的內容。在lua中操縱字串的功能基本來自於string庫。字串庫中的一些函式是非常簡單的 string.len s 返回字串s的長度 string.rep s,n 返回重複n次字串s的串 你使用 ...