NumberFormatter
(或类/结构中的任何其他构建)是否有可能在达到某个最大值后返回具有一定最大值的本地化加号?我尝试过:
let numberFormatter = NumberFormatter()
numberFormatter.maximum = 9
print(numberFormatter.string(from: 10))
但是它只返回"10"
,我期望/希望"9+"
(因为我的本地化设置为英语,因此+是加号,并且自从我们从左开始读取后附加在9后面)右)。是否可以使用可以处理内置加号的本地化的现有类/结构(我认为NumberFormatter
可以完成此工作)?换句话说,加号是不同的,甚至可能在数字的前面。
我不想手动添加加号。
我认为NumberFormatter
应该能够定位加号:https://developer.apple.com/documentation/foundation/numberformatter/1416423-plussign
答案 0 :(得分:0)
这里是一种解决方案,可以根据当前语言环境的语言方向在数字的右边或左边放置加号:
i = 1
答案 1 :(得分:-1)
即使您不是您要找的东西,这也可以。
let numberFormatter = NumberFormatter()
numberFormatter.maximum = 9
func formatMax(_ s: Int) -> String {
if numberFormatter.number(from: String(s)) == nil {
return "\(numberFormatter.maximum!)" + "+"
} else {
return String(s)
}
}
print(formatMax(11))
答案 2 :(得分:-2)
这不是NumberFormatter的工作,但这是一个简单的函数可以为您完成此操作:
func ffs(_ number:NSNumber) -> String{
let max = 9
if (Int(truncating: number) > max){
return "\(max)+"} else {
return "\(number)"
}
}
然后打印(ffs(10))