Ios 关于如何在Swift中将字符串拆分为所需字符串数组的问题

Ios 关于如何在Swift中将字符串拆分为所需字符串数组的问题,ios,swift,Ios,Swift,我有个问题 有几种方法可以将字符串划分为字符串数组 首先,我将字符串转换成字符串数组的方法是 let str = "F'2R'UU2" let strArr: [String] = str.map { String($0) } //strArr => ["F", "'", "2", "R", "'", "U", "U", "

我有个问题

有几种方法可以将字符串划分为字符串数组

首先,我将字符串转换成字符串数组的方法是

let str = "F'2R'UU2"
let strArr: [String] = str.map { String($0) }
//strArr => ["F", "'", "2", "R", "'", "U", "U", "2"]

它会变成这样的字符串数组

但是我想根据大写字母来划分。例如,如果您分割字符串
F2
,它将变为
[“F2”]
,而不是
[“F”,“2”]
,如果您分割字符串
F'2
,它将变为
[“F”,“F”,“2”]
,而不是
[“F'2”]

我想要的结果是

let str = "F'2R'UU2"
<<<str to strArr>>>
//strArr => ["F'2", "R'", "U", "U2"]

let str=“F'2R'uuu2”
//strArr=>[“F'2”,“R'”,“U”,“U2”]

请让我知道

您可以使用
reduce
在每个字符上迭代字符串,如果字符串是大写字母,则将其附加到数组中,否则将其添加到数组的最后一个元素中

let str = "F'2R'UU2"

let res = str.reduce(into: [String]()) {
    if $1.isUppercase || $0.isEmpty {
        $0.append("\($1)") 
    } else {
        $0[$0.count - 1] = $0.last! + "\($1)"
    }
}

不清楚。是否希望数组的每个元素都是首字母+首字母中的所有非字母?是的,没错。救救我,哈哈,不要great@JoakimDanielson为什么不干脆
$0[$0.count-1]。追加($1)
。一行<代码>$1.isUppercase | |$0.isEmpty$0.追加(字符串($1)):$0[$0.count-1]。追加($1)