返回

swift-使用货币符号和值分析字符串

发布时间:2022-09-08 03:35:09 347
# react-native

我试图解析Excel文件中的输入字符串列表,该文件可以有“货币”值,并且可以是任何货币。例如。

  • $200
  • £300
  • €200
  • CA$300

解析货币符号和数值的最佳方法是什么?我正试着用一个NumberFormatter但它不适用于“欧元”或“CAD”价值。

这是我的代码:

let currencyFormatter = NumberFormatter()
currencyFormatter.numberStyle = .currency
currencyFormatter.maximumFractionDigits = 2

let trimmedString = String(currencyString.filter { String($0).rangeOfCharacter(from: CharacterSet(charactersIn: "0123456789.,")) == nil }).trimmingCharacters(in: .whitespacesAndNewlines)

if trimmedString.count > 0 && Locale.current.currencySymbol != trimmedString {
    // Currency symbol is *not* local currency, so lookup the locale for it
    let allLocales = Locale.availableIdentifiers.map({Locale(identifier: $0)})
    if let localeForSymbol = allLocales.filter({$0.currencySymbol == trimmedString}).first {
        currencyFormatter.locale = localeForSymbol
    }
}

if let numberValue = currencyFormatter.number(from: currencyString) {
    print ("\(NSDecimalNumber(decimal: numberValue.decimalValue))")
}

我到底做错了什么?或者,如果不使用一些正则表达式,这是不可能的?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
下一篇
Apache Beam 中的固定窗口何时启动? 2022-09-08 02:50:00