字符串中按规则插入空格

今天同事群有个同事在问

兄弟们, 对于任意长度的数字字符串,比如 123 123456
希望按照4位 4位空格展示,比如1234 56
除了手写substring截取,有别的更简单的方法么?

大家各有做法,如果是你,你会怎么做呢?

我想了想,这个用可变字符串操作,计算插入空格后的总长度,计算要插入的字符位置,就可以了,这样比较高效。再写成字符串的扩展,用起来就更加方便了。

上代码:

extension String {
    func split(by character:Character ,spaceCount:Int) -> String {
        if self.count <= spaceCount {
            return self
        }
        let spacecount = self.count % spaceCount == 0 ? count/spaceCount - 1 : count / spaceCount
        var str = self;
        for i in 1...spacecount {
            let positon = i * spaceCount + (i-1);
            str.insert(character, at: str.index(str.startIndex, offsetBy: positon))
        }
        return str
    }
}

进行测试验证:


image.png

你可能感兴趣的:(字符串中按规则插入空格)