【问题标题】:how to get numbers from string in LUA?如何从LUA中的字符串中获取数字?
【发布时间】:2021-12-30 08:08:00
【问题描述】:

我有字符串 "0,0,0,-58.43083113,,"

如何使用 LUA 将所有 4 个数字加倍?谢谢!

我已经尝试过使用 string.match()。但它没有用。

【问题讨论】:

  • 您应该添加您尝试过的内容。不仅仅是命名一个函数。发布您的代码
  • 欢迎来到 StackOverflow - 请转至 tour - 另请阅读我们的 How to Ask 页面以获取有关如何改进此问题的提示。对于初学者,“它不起作用” 没有描述问题。向我们展示您的尝试以及遇到的错误或问题。
  • 您会接受“我尝试使用 string.match() 并且它对我有用”作为答案吗?可能不会,所以同样你应该提供一些关于你做了什么和你收到的结果的细节(以及你为什么认为它是无效的)。

标签: lua


【解决方案1】:
local text = "0,0,0,-58.43083113,,"

local numbers = {}
text:gsub("[^,]+", function (str) table.insert(numbers, tonumber(str)+.0) end)
print(table.concat(numbers, ", "))

for str in text:gmatch("[^,]+") do
  table.insert(numbers, tonumber(str) + .0)
end

当然,这假设您的字符串中只有数字表示和逗号。

【讨论】:

  • tonumber(str)+.0 是做什么的?为什么+.0
  • @lhf - 它将整数转换为双精度。 differencebetween.info/difference-between-integer-and-double
  • @lhf 这不是必需的,但 OP 要求“双打”。只是为了避免抱怨接收整数。 :)
  • 也许您可以将此解释添加到您的答案中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多