将空格放置在具有不同长度的String中

时间:2015-03-05 13:06:56

标签: ios string swift

所以我有一个Double计算并且每次都有不同的长度(基于某些输入)。这个Double放在一个String中。

var doubleNumber = 30440.8734
var string = "€ \(round(100 * doubleNumber) / 100)"

var numberString: String = string.stringByReplacingOccurrencesOfString("€ ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
var splitString = split(numberString) {$0 == "."}
println(splitString[0])

结果将是:“30440”

我想要做的是在这个数字中放置空格以便于阅读。结果将以“30 440”

结束

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

无论货币格式的问题如何,您都可以使用NSNumberFormatter在数字中添加空格作为分组分隔符:

var doubleNumber = 30440.8734

let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = .CurrencyStyle
numberFormatter.currencySymbol = "€ "
numberFormatter.currencyGroupingSeparator = " "
numberFormatter.maximumFractionDigits = 0
if let formattedString = numberFormatter.stringFromNumber(doubleNumber) {
    println(formattedString)
}

输出:€ 30 441

答案 1 :(得分:0)

我认为NSNumberFormatter方法更好:

let f = NSNumberFormatter()
f.groupingSeparator = " "
f.groupingSize = 3
f.usesGroupingSeparator = true
f.stringFromNumber("30456".toInt()!)

但如果没有格式化程序我会执行此任务,那么这就是我的解决方案:

var i: Int = count(number)
let a = "".join(map(number) {String($0) + (--i % 3 == 0 ? " " : "")})

a.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())