jason 发表于 2010-11-30 17:56:41

原帖由 ddid 于 2010-11-30 05:44 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
MUSH + LUA

还是很爽滴 。。。。。。 hzs

就是啊,用在嵌入脚本的情况下很好。但是要用它干点通用的活,比如这个字符串处理,就麻烦了。连个split都要。。

littleknife 发表于 2010-11-30 17:57:27

各位大神们,请给个清晰点的答案吧。jason的我没有调试环境,也没完全看懂(以为代码不全)。

我的代码错在哪里?。。yct27

jason 发表于 2010-11-30 17:58:11

原帖由 littleknife 于 2010-11-30 05:57 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
各位大神们,请给个清晰点的答案吧。jason的我没有调试环境,也没完全看懂(以为代码不全)。

我的代码错在哪里?。。yct27

你的代码说实话有点乱。可以肯定得一错误是最后剩下的部分你没处理。

ddid 发表于 2010-11-30 18:46:30

else
nowait_string_num=nowait_string_num+1
nowait_string=nowait_string..v..";"
end--if

这里没有 temp_path_table 什么事 ?

ddid 发表于 2010-11-30 18:48:49

把 Jason 的 Python code 用 Lua 重写了一遍,发现确实和你的思路差不多 。。。。。。

hzj

littleknife 发表于 2010-11-30 18:49:09

原帖由 ddid 于 2010-11-30 06:46 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
else
nowait_string_num=nowait_string_num+1
nowait_string=nowait_string..v..";"
end--if

这里没有 temp_path_table 什么事 ?

这里的思路其实就是和jason一样的,当间隔小于规定值的时候 只是累加字符到nowait_string。只不过我这里的变量名长了点,看的不清楚。yct54

littleknife 发表于 2010-11-30 18:50:19

关键是Python的,for,if 到哪里终止,没看懂。。翻译后也有问题。。yct53

ddid 发表于 2010-11-30 19:02:57

唉~,放弃去理解胡小子的代码了,直接把翻译Jason的放上来了:

str="e;e;e;w;w;w;wa(1);e;e;w;e;wa(4);u;d;e;w;e;s;sw;wa(2);e;e;e;e;w;w;u;d;sw;e;se;su;sd;"
arr = split(str, ";")
result = {}
count = 0
wait_step = 5
line = ""
for _, v in ipairs(arr) do
      if string.sub(v, 1, 2) ~= "wa" then
                if count >= wait_step then
                        table.insert(result, line)
                        table.insert(result, "wa(1);")
                        count = 0
                        line = ""
                end --if
                line = line .. v .. ";"
                count = count + 1
      else
                if #line ~= 0 then
                        table.insert(result, line)
                        count = 0
                        line = ""
                end --if
                v = v .. ";"
                table.insert(result, v)
      end --if
end --for

str1 = table.concat(result)

print(str1)

trace 发表于 2010-11-30 19:09:11

要修改一下
arr=utils.split(str,";")

littleknife 发表于 2010-11-30 19:23:19

哈哈,他的代码也是错误的,我测试过啦。。。不过这个问题我已经解决啦。。。


---------运行结果如下----------------
1 e;e;e;w;w
2 wa(1)
3 w
4 wa(1)
5 e;e;w;e
6 wa(4)
7 u;d;e;w;e
8 wa(1)
9 s;sw
10 wa(2)
11 e;e;e;e;w
12 wa(1)
13 w;u;d;sw;e
14 wa(1)
15 se;su;sd
页: 1 2 [3] 4
查看完整版本: 再次请教一个字符串处理问题。(mush lua)