gpt4 book ai didi

ios - 在字符串中查找数字并计算,插入字符串中(Swift)

转载 作者:可可西里 更新时间:2023-11-01 00:59:31 24 4
gpt4 key购买 nike

我正在尝试在我的食谱管理器应用程序中提供成分缩放功能。缩放结果仅用于显示目的,不会持久化。

假设我们有一份炒饭食谱,其成分包括 2 bowls of rice, 1 egg, 1 tbsp soy sauce这是 2 份(人)。

这个数字“2”中有 - 和 + 按钮来增加/减少服务,看起来像 - 2 +

每当按下 - 和 + 图标时,它将运行一个函数以从成分字符串中获取数字并获取 1 份的成分数量。食谱数据可以以任何份量保存,因此为了缩放我总是需要从 1 份份量开始。根据我这里的例子,一份配料的数量应该是 1 bowls of rice, 0.5 egg, 0.5 tbsp soy sauce ,因此 [1, 0.5, 0.5] .

然后我可以根据用户操作调整配料数量。到目前为止,我已经想出了以下方法,它从整个成分字符串中获取数字字符串,将其放入一个数组并将其转换为 Int 数组。

if recipe.ingredients != "" {
let ingredientStr = recipe.ingredients
let numStr = ingredientStr?.componentsSeparatedByCharactersInSet(
NSCharacterSet
.decimalDigitCharacterSet()
.invertedSet)
let array = numStr!.filter({ $0 != "" })
var intArray = array.map{ Int($0)! }
}

我尝试了多种方法从这里计算数字,但未能获得预期的数字。我还没有完成的是:

  • 获取 1 份量
  • 根据 +、- 操作调整数量
  • 将运算结果插回原来的String中显示<​​/li>

最佳答案

这是您需要的吗?

extension Float {
var cleanValue: String {
return self % 1 == 0 ? String(format: "%.0f", self) : String(self)
}
}

let item = "1 bowls of rice, 0.5 egg, 0.5 tbsp soy sauce"

func computeServing(inputString: String, servingCount:Int) -> String {
var components = item.componentsSeparatedByString(" ")

for idx in 0..<components.count {
if let integer = Int(components[idx]){
components[idx] = String(integer * servingCount)
} else if let float = Float(components[idx]){
components[idx] = String((float * Float(servingCount)).cleanValue)
}
}

return components.joinWithSeparator(" ")

}

computeServing(item, servingCount: 3)

关于ios - 在字符串中查找数字并计算,插入字符串中(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37316076/

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