1. 程式人生 > >Lua庫(math、string、table)常用方法集合

Lua庫(math、string、table)常用方法集合

1)  math庫

math.random(os.time())            隨機種子

os.time()表示當前時間,返回距離到現在的秒數,跟C++的time(NULL)一樣。

math.random()        --返回0-1之間的隨機數

math.random(5)       --返回1-5之間的整數(包括1和5)

math.random(5, 10)   --返回5到10之間的整數(包括5和10)

math.floor(5.125)        -- 5  向下取整函式

如果想對一個數四捨五入,那麼可以讓它加上0.5,再向下取整。

math.ceil(9.1)               --10  向上取整

math.pi  --3.1415926535898(圓周率

math.abs(-2012)          2012(取絕對值

math.max(2, 4, 6, 8)     -- 8取最大值

math.min(2, 4, 6, 8)     -- 2取最小值

math.rad(180)                --3.14159   角度轉弧度

math.deg(math.pi)            --180  弧度轉角度

2)  string庫

數字和字串相互轉化  tonumber(“123”)            tostring(123)

string.char(arg) --將整數轉化為字元(根據ASCII編碼)

string.byte(arg[,int])   --將字元轉化為整數(可以指定某個字元,預設為第一個字元)

例如:string.char(97, 98, 99, 100)    --abcd

string.byte(“abcd”, 4)               --將第四個字元轉化為其ASCII 68

string.byte(“abcd”)             --預設將第一個字元轉化為其ASCII 65

string.len(“abcd”)       --  4 求字串的長度   等價於#“abcd”

string.upper(“abCD”) --  ABCD   將字串轉為大寫

string.lower

(“abCD”) --  abcd   將字串轉為小寫

string.format(“%s”, “abc”) -- 格式化字串

string.sub(“hello world”, 1, 5)   -- hello    返回指定位置的字元(開始位置和結束位置)

string.gsub(“hello world”, “o”, “a”)  --  hella warld

替換字串(可以有第四個引數,表示替換次數,預設不寫為全部替換)

a, b = string.find(“abcdefg”, “de”)       -- 4, 5

返回指定字串的開始下標和結束下標

string.reverse(“abcd”)       -- “dcba”    將字串反轉

string.rep(“abcd”, 3)        -- “abcdabcdabcd”    實現字串的n個拷貝

看一個替換的例子:

myString = “happy, hello, home, hot, hudson”

myString = string.gsub(myString, “h%a+”, “An h word!”, 2)

print(myString)  -- An h word!, An hword!, home, hot hudson

其中“h%a+”表示第一個字元是h,%a+表示任意長度的字母,並且在遇到空格或者標點符號時為止。

3)  table庫

table.getn(myTable)          返回表的長度(元素個數)

table.sort(myTable, func)    對錶進行排序,按照函式來決定是升序還是降序

例如:

sortFunc = function(a, b) return a> b end

table.sort({“banana”, “orange”, “apple”, “grapes”}, sortFunc)

輸出結果為:orange grapes, banana, apple

table.insert(myTable, [pos,] value)

在指定的位置插入元素(value),如果不指定位置,那麼預設插入到表的末尾

table.remove(table[,pos])

刪除並返回

table.concat(table[, “,”[, first[, end]]])

連線表

例如:fruits = {“banana”, “orange”, “apple”}

print(table.concat(fruits))       --bananaorangeapple

print(table.concat(fruits, “,”))  --banana,orange,apple

print(table.concat(fruits, “,”, 2, 3) --orange,apple

關於自己想查詢任何庫中的函式,可採用下面的方法進行輸出判斷:

for k, v in pairs(庫) do 
print(k)
end

比如:

for k, v in pairs(table) do 
print(k)
end

--[[

sort
unpack
remove
insert
move
pack
concat

]]

相關推薦

Luamathstringtable常用方法集合

1)  math庫 math.random(os.time())            隨機種子 os.time()表示當前時間,返回距離到現在的秒數,跟C++的time(NULL)一樣。 math.random()        --返回0-1之間的隨機數 math.ra

常用APIObjectStringStringBuffer用戶登陸註冊)

類的方法 time logs 3.6 strong 設計 indexof 概述 比較運算符 常用API 今日內容介紹 u Object u String u StringBuilder 第1章 Java的API及Object類 在以前的學習過程中,我們都在學習對象基本特征、

Java基礎知識JAVA中StringStringBufferStringBuilder類的區別

pen 順序 ava tps 進行 exp ringbuf https 對他 java中String、StringBuffer、StringBuilder是編程中經常使用的字符串類,他們之間的區別也是經常在面試中會問到的問題。現在總結一下,看看他們的不同與相同。

Java筆試題——執行緒安全StringStringBufferStringBuilder

1.什麼是執行緒安全? 簡單地說法:執行緒安全可以簡單理解為一個方法或者一個例項可以在多執行緒環境中使用而不會出現問題。 複雜的說法:當多個執行緒訪問同一個物件時,如果不用考慮這些執行緒在執行時環境下的排程和交替執行,也不需要進行額外的同步,或者在呼叫方進行任何其他的協調操作,呼叫這個物件的

窗體加法運算intstring相互轉換

String轉int int iAge = int.Parse(age); int轉String  textBoxRes.Text = num.ToString(); 編寫一個應用程式,完成數字的加法運算。 using System; using System.Coll

15_常用API_第15天ObjectStringStringBuffer使用者登陸註冊_講義

今日內容介紹 1、Object 2、String 3、StringBuilder 第1章 Java的API及Object類 在以前的學習過程中,我們都在學習物件基本特徵、物件的使用以及物件的關係。接下來我們開始使用物件做事情,那麼在使用物件做事情之前,我們要學習

Java基礎筆記4——ObjectString正則Math包裝類

Java基礎筆記4 八、介面API Application Programming Interfaces——應用程式介面 Object物件 是java中所有類的父類——頂級父類 沒有寫父類的都預設繼承Object類。 clone()克隆——克隆出一個新物件,新物件的屬性值和原來的一樣。 如果

Java JSONArrayJSONObjectString字串中引號""替換成"-"

String value=(a.toString()).replace("\"\"", "\"-\""); 解釋: 原來,jsonObject傳過去有很多空值。 JSONArray a = new JSONArray(); jsonObject.accumulate("da

Redis客戶端之JedisKeyStringSetListpub/subclusterpoolpipleline

環境: OS:CentOS7 64位 server版本:Redis 3.2.0 client 版本:Jedis 2.8.0 在Maven中引用jedis的jar: <dependencies> <dependency&

JS的內建物件(DateStringArrayMathEvent)

1. 日期物件Date var myDate = new Date();// 建立一個時間物件的例項。預設是電腦的系統時間。 也可自定義時間:var d = new Date(2017,10,1);或 var d = new Date("oct 1,2017"

Java Stringstring[]List初始化方法

arraylist list add java 執行 ring1 初始化塊 str 方法 String初始化:   1.String str = new String("string1");   2.String str = "string1"; String[]初始化:

int型char*string的swap算法

char* spa es2017 ble ring mage 中間 turn char 1.倆整數,不使用中間變量交換其值: int& intswap(int& a, int& b) { b ^= a; a ^= b; b

ArrayListString[]String互轉

new 長度 strong ring col bsp 內容 aslist toarray String[]初始化時候必須指定長度,而ArrayList是動態數組,可以根據實際內容改變 String[] strArr = new String[]{ "aaa", "bbb"

Redis 的 KeyStringlistsethash 的基本操作總結

目錄   一、基本的實現架構 二、操作 Key 的方法 三、對儲存結構為String型別的操作 四、對儲存結構為List型別的操作 五、對儲存結構為Set型別的操作 六、對儲存結構為HashMap型別的操作 一、基本的實現架構 就是新建一個實體類,通

CStringstringconst char*的相互轉換

環境:vs2010 1.CString轉string 複製程式碼 //第一種方式: CString str = _T(“CSDN”); USES_CONVERSION; std::string s(W2A(str)); //第二種方式: CString str = _T(“CSDN”

CStringACStringWstringwstring轉換

CString、CStringA,CStringW的關係  在MFC的工程中我們可以設定工程的編碼屬性:  ①:對於UNICODE的編碼屬性CString被定義為CStringW,其內部是WCHAR寬字元  ②:對於多位元組的編碼屬性 CString被定義為CStrin

c#之StringbuilderStringAppend

問題引出:  StringBuilder sqlQuery = new StringBuilder();  sqlQuery.Append("SELECT COUNT([ProductID]) FROM ~~where [IsDelete]='F' );   1.St

StringStringBufferStringBuilder有什麼區別?

String:字串常量,不可變的。(字串的拼接,擷取等等都會產生大量的物件) StringBuffer:字串緩衝區,可變的,執行緒安全的,效率低。多執行緒下共享同一個變數使用。 StringBuilder:字串緩衝區,可變的,執行緒不安全的,效率高。單執行緒使用效率高。

ES6中JsonStringMapObject之間的轉換

'use strict'; import React, {Component} from 'react' /** *JsonUitl的實現 */ class JsonUtils extends React.Component { /** *字串轉json * */ static stringToJs

DateStringCalendar型別之間的轉化

1.Calendar 轉化 String   //獲取當前時間的具體情況,如年,月,日,week,date,分,秒等          Calendar calendat = Calendar.getInstance(); SimpleDateFormat sdf = ne