文章目录
一、toHex()方法
作用:将二进制数据或字符串转换为十六进制表示形式。
用法:常用于需要将数据表示为十六进制字符串的场景,例如打印数据、存储或传输。
local s = "861714051310641"
local test= string.toHex(s)
print(test)
-- 383631373134303531333130363431
二、fromHex()方法
作用:将十六进制字符串转换回原始的二进制数据或字符串。
用法:常用于需要从十六进制字符串恢复原始数据的场景,例如解码传输的数据。
local s = "383631373134303531333130363431"
local x = string.fromHex(s)
print(x)
-- 861714051310641
三、find()方法
- 作用:方法用于在字符串中查找指定的子串或模式,并返回子串或模式在字符串中的起始位置和结束位置。
- 用法:处理字符串查找
start_pos, end_pos = string.find(haystack, needle [, init [, plain]])
haystack
: 要搜索的目标字符串。needle
: 要查找的子串或 Lua 模式。init
: (可选)指定从目标字符串的哪个位置开始查找,默认为1
。plain
: (可选)布尔值,如果为true
,则needle
被视为普通字符串而不是模式匹配。默认为false
。
返回值
start_pos
: 子串或模式在目标字符串中的起始位置。end_pos
: 子串或模式在目标字符串中的结束位置。- 如果未找到子串或模式,则返回
nil
。
查找子串的位置:
local s = "861714051310641"
local start_pos, end_pos = string.find(s, "0513")
print(start_pos, end_pos) -- 输出: 7 10
查找不存在的子串:
local s = "861714051310641"
local start_pos, end_pos = string.find(s, "9999")
print(start_pos, end_pos) -- 输出: nil nil
使用 init
参数指定查找起始位置:
local s = "861714051310641"
local start_pos, end_pos = string.find(s, "310", 8)
print(start_pos, end_pos) -- 输出: 10 12
使用模式匹配:
local s = "861714051310641"
local start_pos, end_pos = string.find(s, "%d+")
print(start_pos, end_pos) -- 输出: 1 15
使用 plain
参数进行精确查找:
local s = "861714051310641"
local start_pos, end_pos = string.find(s, "0513", 1, true)
print(start_pos, end_pos) -- 输出: 7 10
总结
例如:本文仅仅简单介绍了数据转换的使用,还有其他更多的方法处理数据需要实际使用。