跳转至

utils - 常用工具类接口

适用范围

层面 说明
运行环境 LuatOS-Air 脚本框架,展锐 8910 平台(Air724UG / Air722UG / Air795UG / Air720UH 等)
前提条件 无外设依赖,纯工具函数
不适用 Air780E 及以后跑 LuatOS 的 Cat.1 模组;这些模组的同名库在 osapi 里是另一套接口,不能照抄

string.toHex(str, separator)

将Lua字符串转成HEX字符串,如"123abc"转为"313233616263"

参数

名称 传入值类型 释义
str string 输入字符串
separator string 可选参数,默认为"" 输出的16进制字符串分隔符

返回值

hexstring 16进制组成的串 len 输入的字符串长度

例子

string.toHex("\1\2\3") -> "010203" 3
string.toHex("123abc") -> "313233616263" 6
string.toHex("123abc"," ") -> "31 32 33 61 62 63 " 6

string.fromHex(hex)

将HEX字符串转成Lua字符串,如"313233616263"转为"123abc", 函数里加入了过滤分隔符,可以过滤掉大部分分隔符(可参见正则表达式中\s和\p的范围)。

参数

名称 传入值类型 释义
hex string 16进制组成的串

返回值

charstring,字符组成的串 len,输出字符串的长度

例子

string.fromHex("010203")       ->  "\1\2\3"
string.fromHex("313233616263:) ->  "123abc"

string.utf8Len(str)

返回utf8编码字符串的长度

参数

名称 传入值类型 释义
str string utf8编码的字符串,支持中文

返回值

number,返回字符串长度

例子

local cnt = string.utf8Len("中国a"),cnt == 3

string.utf8ToTable(str)

返回utf8编码字符串的单个utf8字符的table

参数

名称 传入值类型 释义
str string utf8编码的字符串,支持中文

返回值

table,utf8字符串的table

例子

local t = string.utf8ToTable("中国2018")

string.rawurlEncode(str)

返回字符串的 RFC3986 编码

参数

名称 传入值类型 释义
str string 要转换编码的字符串,支持UTF8编码中文

返回值

str, RFC3986 编码的字符串

例子

local str = string.rawurlEncode("####133") ,str == "%23%23%23%23133"
local str = string.rawurlEncode("中国2018") , str == "%e4%b8%ad%e5%9b%bd2018"

string.urlEncode(str)

返回字符串的urlEncode编码

参数

名称 传入值类型 释义
str string 要转换编码的字符串,支持UTF8编码中文

返回值

str,urlEncode编码的字符串

例子

local str = string.urlEncode("####133") ,str == "%23%23%23%23133"
local str = string.urlEncode("中国2018") , str == "%e4%b8%ad%e5%9b%bd2018"

table.gsort(t, f)

返回一个迭代器函数,每次调用函数都会返回hash表的排序后的键值对

参数

名称 传入值类型 释义
t table 要排序的hash表
f param 自定义排序函数

返回值

function.

例子

test = {a=1,f=9,d=2,c=8,b=5}
for name,line in pairsByKeys(test) do print(name,line) end

table.rconcat(l)

table.concat的增强版,支持嵌套字符串数组

参数

名称 传入值类型 释义
l table 嵌套字符串数组

返回值

string

例子

print(table.rconcat({"a",{" nice "}," and ", {{" long "},{" list "}}}))

string.formatNumberThousands(num)

返回数字的千位符号格式

参数

名称 传入值类型 释义
num number 数字

返回值

string,千位符号的数字字符串

例子

loca s = string.formatNumberThousands(1000) ,s = "1,000"

string.split(str, delimiter)

按照指定分隔符分割字符串

参数

名称 传入值类型 释义
str string 输入字符串
delimiter string 分隔符

返回值

分割后的字符串列表

例子

"123,456,789":split(',') -> {'123','456','789'}

io.exists(path)

判断文件是否存在

参数

名称 传入值类型 释义
path string 文件全名,例如:"/lua/call.mp3"

返回值

bool,存在为true,不存在为false

例子

local ex = io.exists("/lua/call.mp3")

io.readFile(path)

读取文件中的所有内容

参数

名称 传入值类型 释义
path string 文件全名,例如:"/lua/call.txt"

返回值

string,文件的内容,文件不存在返回nil

例子

local c = io.readFile("/lua/call.txt")

io.writeFile(path, content, mode)

写入文件指定的内容,默认为覆盖二进制模式

参数

名称 传入值类型 释义
path string 文件全名,例如:"/lua/call.txt"
content string 文件内容
mode string 文件写入模式,支持如下几种(默认"w+b"):
"w"或者"w+b":空文件写入模式,如果文件不存在,则新建文件,然后从起始位置开始写入;如果文件存在,则删除已有内容,然后从起始位置开始写入
"a"或者"a+b":追加写入模式,如果文件不存在,则新建文件,然后从起始位置开始写入;如果文件存在,则从文件末尾开始追加写入

返回值

boolean result,文件写入结果,true表示写入成功;false表示写入失败

例子

local c = io.writeFile("/lua/call.txt","test")

io.pathInfo(path)

将文件路径分解为table信息

参数

名称 传入值类型 释义
path string 文件路径全名,例如:"/lua/call.txt"

返回值

table,{dirname="/lua/",filename="call.txt",basename="call",extname=".txt"}

例子

loca p = io.pathInfo("/lua/call.txt")

io.fileSize(path)

返回文件大小

参数

名称 传入值类型 释义
path string 文件路径全名,例如:"/lua/call.txt"

返回值

number ,文件大小

例子

locan cnt = io.fileSize("/lua/call.txt")

io.readStream(path, offset, len)

返回指定位置读取的字符串

参数

名称 传入值类型 释义
path string 文件路径全名,例如:"/lua/call.txt"
offset number 要读取的指定位置,相对于文件开头的偏移位置
len number 要读取的字节数

返回值

string,返回要读取的数据,读取失败返回nil

例子

无


搜索