Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Swift中的每个第n个字符处拆分字符串?_Swift - Fatal编程技术网

如何在Swift中的每个第n个字符处拆分字符串?

如何在Swift中的每个第n个字符处拆分字符串?,swift,Swift,如问题所述,如果我有: XQQ230IJFEKJLDSAIOUOIDSAUIFOPDSFE28 如何在每8个字符处拆分此字符串以获得: XQQ230IJ FEKJLDSA IOUOIDSA UIFOPDSA 实现这个功能 extension String { func inserting(separator: String, every n: Int) -> String { var result: String = "" let charact

如问题所述,如果我有:

XQQ230IJFEKJLDSAIOUOIDSAUIFOPDSFE28
如何在每8个字符处拆分此字符串以获得:

XQQ230IJ FEKJLDSA IOUOIDSA UIFOPDSA

实现这个功能

extension String {
    func inserting(separator: String, every n: Int) -> String {
        var result: String = ""
        let characters = Array(self.characters)
        stride(from: 0, to: characters.count, by: n).forEach {
            result += String(characters[$0..<min($0+n, characters.count)])
            if $0+n < characters.count {
                result += separator
            }
        }
        return result
    }
}
输出是这样的,

XQQ230IJ FEKJLDSA IOUOIDSA UIFOPDSF E28

如果你想添加任何字符而不是空格,这将是一个通用的解决方案。我不确定你为什么要将其标记为重复,因为我在这里获得的答案比你引用的帖子中的jibberish答案更好。您只是让堆栈溢出变得很烦人。不幸的是,Swift 5不再适用。以下是Swift 5版本:
扩展字符串{func插入(分隔符:String,every n:Int)->String{var result:String=”“let characters=Array(self)stride(从:0到:characters.count,by:n)。forEach{result+=字符串(字符[$0。。
XQQ230IJ FEKJLDSA IOUOIDSA UIFOPDSF E28