Swift:使用NumberFormatter在Integer上添加分隔符

如果要将整数值分成由字符(即1.000、1 000 000)分隔的组,则需要使用NumberFormatter

什么是NumberFormatter?

NumberFormatter是在数字值及其文本表示形式之间转换的格式化程序。

如何使用它

为了方便使用,我们将创建两个扩展文件,使我们能够在项目中全局使用它。

Formatter + Extensions.swift

extension Formatter { 
static let withSeparator: NumberFormatter = {
let formatter = NumberFormatter()
formatter.groupingSeparator = " "
formatter.numberStyle = .decimal
return formatter
}()
}

使用groupingSeparator可以确定分隔符是什么。 在这种情况下,它是空格,但是您可以添加任何其他特殊字符(例如点或逗号)以使其为1.000或1,000。

Int + Extensions.swift

 extension Integer{ 
var formattedWithSeparator: String {
return Formatter.withSeparator.string(for: self) ?? ""
}
}

接下来,我们将从上述扩展中调用静态变量withSeparator ,并创建一个名为formatterWithSeparator的新变量。 此变量会将您的Int转换为String值中的分隔数字。

用法

最后,您可以像这样在Int值上调用formatterWithSeparator

 let myInt = 1234500 
let myIntString = myInt.formattedWithSeparator // "1 234 500"