Swift 2進数出力のゼロサプレス 改:指定桁数で区切り表示

初版記事:Swift 2進数出力のゼロサプレス

出力:00110

見やすくするために4桁で区切りたい。

ゴール:0 0110

対応

extension String {
    func zerosuppression(digit: Int, split: Int = 0) -> String {
        var result = String(repeating: "0", count: digit - self.count) + self
        if split > 0 {
            var splitIndex = split
            while result.count > splitIndex {
                result.insert(" ", at: result.index(result.endIndex, offsetBy: -(splitIndex)))
                splitIndex = splitIndex + split + 1
            }
        }
        return result
    }
}
print("\(String(6, radix: 2)).zerosuppression(digit: 8, split: 4)")

出力:0000 0110

print("\(String(6, radix: 2)).zerosuppression(digit: 8, split: 2)")

出力:00 00 01 10

SwiftSwift

Posted by shi-n