Lua   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何迭代单个字符在Lua字符串?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符串在Lua,并希望迭代其中的个别字符。但没有代码我试过工程和官方手册只显示如何查找和替换子字符串:(
str = "abcd"
for char in str do -- error
  print( char )
end

for i = 1,str:len() do
  print( str[ i ] ) -- nil
end

解决方法

在lua 5.1中,你可以用几种方法迭代字符串的字符。

基本循环是:

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,请注明来意。