大佬教程收集整理的这篇文章主要介绍了如何迭代单个字符在Lua字符串?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
str = "abcd" for char in str do -- error print( char ) end for i = 1,str:len() do print( str[ i ] ) -- nil end
基本循环是:
for i = 1,#str do local c = str:sub(i,i) -- do something with c end
但是使用带有String.gmatch()的模式来获得字符上的迭代器可能更有效:
for c in str:gmatch"." do -- do something with c end
或者甚至使用String.gsub()为每个char调用一个函数:
str:gsub(".",function(C) -- do something with c end)
在上面的所有内容中,我已经利用了字符串模块被设置为所有字符串值的metatable的事实,所以它的函数可以使用:符号调用成员。我也使用(新到5.1,IIRC)#来获取字符串长度。
对于你的应用程序的最佳答案取决于很多因素,如果性能是重要的,基准是你的朋友。
您可能想要评估为什么需要迭代字符,并查看已绑定到Lua的正则表达式模块之一,或者现代方法查看Roberto的lpeg模块,该模块实现了解析Lua的表达式语法。
以上是大佬教程为你收集整理的如何迭代单个字符在Lua字符串?全部内容,希望文章能够帮你解决如何迭代单个字符在Lua字符串?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。