我有一个字符串,如first part;second part
。我想将它拆分为;
并返回第二部分。一切工作正常:在分隔符上分割一个字符串
start = mystring:find(';')
result = mystring:sub(start)
,但我希望做一个行:
result = mystring:sub(mystring:find(';'))
它不会抛出一个错误,但它没有返回预期的结果。不是一个大问题,因为它可以在两行代码中正常工作,但是理解为什么它不在oneliner上工作,这将有助于我更好地理解lua如何工作。
还有什么神奇的功能,只需将第一个索引传递给sub()函数,而无需先将其分配给变量?像'mystring:sub(mystring:find(';')[1])'(这当然不起作用) – ripat 2011-05-17 16:54:13
@ripat lhf已经回答了这个问题。另请看这个页面:[http://lua-users.org/wiki/SplitJoin](http://lua-users.org/wiki/SplitJoin)。例如,如果您的字符串有两个以上的部分,您可能会获得更好的解决方案。 – Zecc 2011-05-18 09:11:22