function lua_string_split(str, split_char)
local sub_str_tab = {};
while (true) do
local pos = string.find(str, split_char);
if (not pos) then
sub_str_tab[#sub_str_tab + 1] = str;
break;
end
local sub_str = string.sub(str, 1, pos - 1);
sub_str_tab[#sub_str_tab + 1] = sub_str;
str = string.sub(str, pos + 1, #str);
end
return sub_str_tab;
end
lua语言!有人知道下面代码的意思吗?
答案:3 悬赏:80 手机版
解决时间 2021-02-28 02:44
- 提问者网友:且恨且铭记
- 2021-02-27 18:54
最佳答案
- 五星知识达人网友:等灯
- 2021-02-27 20:12
根据 split_char 字符分割 str 字符串。例如: str = "abc,def,ghi" split_char = ',' 则
sub_str_tab = {[1] = "abc", [2] = "def", [3] = "ghi"}
sub_str_tab = {[1] = "abc", [2] = "def", [3] = "ghi"}
全部回答
- 1楼网友:duile
- 2021-02-27 22:47
就是一个字符串分割函数 你实际举例拿去运行一下就明白了
- 2楼网友:枭雄戏美人
- 2021-02-27 21:12
后面部分没看懂,但是我觉得会出错
local pos = string.find(str, split_char);
在str里面查找split_char , 把查找的结果返回到pos,如果找到会返回找到的起点,比如在“123”里面查找“2”,返回的就是2,因为“2”是第2个字符。找不到就会返回nil
-----------------------------------
if (not pos) then
sub_str_tab[#sub_str_tab + 1] = str;
break;
end
如果返回的pos不是nil就把str新增到数组 sub_str_tab
----------------------------------
local sub_str = string.sub(str, 1, pos - 1);
把str字符串从第1个字符开始,一直截取到倒数第(pos-1)个字符,截取的结果赋值给sub_str
不过我觉得这一句话会不对,因为如果pos不是nil,那么前面就直接跳出循环了,这一句执行不到。如果pos是nil,那么pos-1就变成了nil和数字的运算,会出错。
--------------------------
后面2句和前面的用法是一样的,不过没看懂为什么要这么写
——————————————
刚开始学lua,要是说的不对,自行纠正。有兴趣可以加Q群一起交流,103760539
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯