gpt4 book ai didi

swift - 快速解析文本中的单位和金额

转载 作者:行者123 更新时间:2023-11-30 11:39:46 24 4
gpt4 key购买 nike

我想知道快速将多个项目从字符串中分离出来的最佳方法是什么。我希望从字符串中分离出单位和数量,然后使用这些值创建我的成分类的对象。

例如:

var string = "4 cups sugar"

我需要获取 4(数量)并将其转换为 int,然后获取单位(杯)

var amount = 4  
var unit = "cups"

另一个例子:

"3 large eggs"

在这种情况下,我想取出 3(数量),并且该单位将为空。

var amount = 3
var unit = ""

然后我将使用单位和金额值创建我的对象。

我仍然是 swift 的新手,对于字符串操作更是如此,所以我不完全确定如何解决这个问题,任何正确方向的帮助都会很棒。

我正在使用一个成分类,其结构如下:

class IngredientModel {  
var amount = 0
var unit = ""

init(amount : Int, unit : String) {
self.amount = amount
self.unit = unit
}

最佳答案

SWIFT 中,您可以通过可选参数和泛型尽早做到这一点。我可以告诉你怎么做?以你的例子..

您的成分类别

class IngredientModel {

var amount = 0
var unit = ""
let units = ["cups","spoon"] //Add your required units

init(string: String) {

let array = string.components(separatedBy: " ")
if let _amount = array.ref(0) {
self.amount = Int(_amount) ?? 0
}

if let _unit = array.ref(1),
units.contains(_unit){
self.unit = _unit
}
}

}

用于防止索引超出范围的数组扩展

extension Array {
func ref(_ i:Int) -> Element? {
return 0 <= i && i < count ? self[i] : nil
}
}

Playground screenshot

关于swift - 快速解析文本中的单位和金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49375469/

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