在字符串中添加并格式化前导零

时间:2016-10-08 15:56:16

标签: swift nsattributedstring

我想在我的应用中显示一个数字,并保持漂亮,显示前导零以使布局均匀。

例如

000 500 / 500 000
001 000 / 500 000
100 350 / 500 000

我从Int获取第一个数字,我想将其格式化为字符串。 是否有一种简洁的方法可以确保一个数字总是六位数,并且还获得前导零的范围以使它们格式化不同?

2 个答案:

答案 0 :(得分:1)

这个怎么样?

字符串扩展名:

extension String {
    func substring(startIndex: Int, length: Int) -> String {
        let start = self.startIndex.advancedBy(startIndex)
        let end = self.startIndex.advancedBy(startIndex + length)
        return self[start..<end]
    }
}

用法:

var a = 500
var s = "000000\(a)"
print(s.substring(s.characters.count - 6, length: 6))

a = 500000
s = "000000\(a)"
print(s.substring(s.characters.count - 6, length: 6))

a = 50
s = "000000\(a)"
print(s.substring(s.characters.count - 6, length: 6))

答案 1 :(得分:1)

NSNumberFormatter拥有您需要的一切:

let formatter = NumberFormatter()
formatter.minimumIntegerDigits = 6
formatter.numberStyle = .decimal

print(formatter.string(from: 500)!)
print(formatter.string(from: 1000)!)
print(formatter.string(from: 100_350)!)