【发布时间】:2015-07-04 02:34:14
【问题描述】:
我正在用 Lua 制作一个简单的 android 游戏,其中一个设置游戏的步骤是设置玩家输入的单词(或句子;基本上是一个字符串)。 “单词”可能有空格,但我想禁止玩家输入连续有两个或多个空格的字符串,比如"fly bird"。
我尝试使用string.match(word, " ")、string.match(word, "%s%s")
和string.match(word, "%s+%s+"),这些都不起作用,不知何故,最后一个总是“检测”双空格,不管它是否有空格。
如何检测字符串中的一行是否有多个空格? (只是检测,而不是替换,所以我可以向玩家发送警告消息。)
【问题讨论】:
-
这些都应该有效。发布一个显示失败的最小代码,也许有一些关于你如何检查返回值的东西。另外,
find()可能是一个更好的工具。 -
我在带有其他几个条件的 if 语句中使用了它。代码类似于
if( word == nil or word == '' or string.match(word, "!") or string.match(word, "%s%s") then invalidWordWarningMessage() else -
好吧,您输入的代码应该可以工作。看起来虫子藏在其他地方。在此
if声明之前,您是否尝试过print(word)?也许,这不是你所期望的?无论哪种方式,请考虑使用find()而不是match()- 在您的情况下更自然。 -
好吧,问题不在于字符串的输入,因为当单词没有任何这些匹配项时(我没有验证多个空格),程序应该打印这个词给玩家,它工作正常。