我有两个字符串需要合并。但我必须像下面的格式一样合并。
var a = "abc"
var b = "def"
我需要这样做:adbecf
。
只是一个正常的 a+b,我试过一些条件。但是无法解决。有什么想法吗?
更新:
let stringA = "abc"
let stringB = "def"
func mergeStrings(a: String, b: String) -> String {
let val = zip(a,b).reduce("") { (result, arg1) in
let (char1, char2) = arg1
return result + "\(char1)\(char2)"
}
return val
}
最佳答案
let a = "abc"
let b = "def"
let c = zip(a,b).reduce("") { (result, arg1) in
let (char1, char2) = arg1
return result + "\(char1)\(char2)"
}
print(c)//adbecf
简而言之
let c = zip(a,b).reduce("") { $0 + "\($1.0)\($1.1)" }
print(c)
使用 zip(::)两个不等长的字符串将以忽略剩余的字符串结束。
let a = "12345"
let b = "67"
let c = zip(a,b).reduce("") { $0 + "\($1.0)\($1.1)" }
print(c)//"1627"--> 345 is ignored
解决这个问题
if a.count > b.count {
c = c + String(a[b.endIndex...])
} else if b.count > a.count {
c = c + String(b[a.endIndex...])
}
print(c)//"1627345"
关于swift - 以替代格式追加字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56055596/