添加数字和非数字之间的间距

时间:2016-06-24 16:23:40

标签: swift

大家好我有一个我需要解决的问题。以下是示例:

输入ABCD12345将输出ABCD 12345

输入A12345BCDE将输出A 12345 BCDE

输入ABC 12345将输出ABC 12345 (删除多余的间距)

如上所示,如果没有间距,则应添加单个间距,但如果有,则检查是否有双重间隔,然后将其设为单个间距。

1 个答案:

答案 0 :(得分:2)

要完成你的要求你可以做这样的事情:

let letters = NSCharacterSet.letterCharacterSet()
let digits = NSCharacterSet.decimalDigitCharacterSet()
var res = ""
var lastDigit = false
for char in [input].unicodeScalars {
    if letters.longCharacterIsMember(char.value) && lastDigit {
        res += " "
        lastDigit = false
    } else if digits.longCharacterIsMember(char.value) && !lastDigit {
        res += " "
        lastDigit = true
    }
    if String(char) != " " {
        res += String(char)
    }
}
print(res)

在上面的代码中,您应该将[input]占位符替换为您要处理的输入,结果字符串将位于res变量中。