gpt4 book ai didi

Lua 检查字符串是否为十进制整数

转载 作者:行者123 更新时间:2023-12-05 00:56:15 25 4
gpt4 key购买 nike

lua中如何判断一个字符串是否为整数?例如 isInteger("123"),应该为真。并且 isIntger("abc")isIntger("12.3") 应该是假的。

最佳答案

从 Lua 5.2 开始,您可以使用 tonumber来实现这一点。如果将第二个参数放入其中,则字符串将被视为一个数字,该数字应该是 base 中的整数:

print(tonumber("145.5", 10)) -- nil
print(tonumber("145", 10)) -- 145
print(tonumber("-145", 10)) -- -145

在 Lua 5.1 中情况有所不同,因为 tonumber 即使指定了 base 也接受任何数字,而不仅仅是整数。我可能会使用 string.match :

print(("145.5"):match("^%-?%d+$")) -- nil
print(("145"):match("^%-?%d+$")) -- "145"
print(("-145"):match("^%-?%d+$")) -- "-145"

模式在 5.4.1 部分中描述.

有了这些值,您可以在需要时轻松地将它们用作 bool 值,也可以在需要时用作实际整数。如果您正在寻找更简单的严格 bool 结果,请参阅 Piglet 的回答;它更好地描述了这种意图。我很少遇到这种需求,因此我建议使用 nil/value 替代品。这是 Lua 中常用的方法。

关于Lua 检查字符串是否为十进制整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62633698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com