gpt4 book ai didi

string - 如何根据标记将字符串分解为数组?

转载 作者:行者123 更新时间:2023-11-30 10:19:47 27 4
gpt4 key购买 nike

背景

例如,假设我有:

let tgt     = "Europa"
let token = "ro"
let a = split_on( tgt, token ) // how to implement this?
let exp_res = [ "Eu", "ro", "pa" ]

我考虑过使用String.componentsSeparatedByString,但是分割位置丢失了(即我们不知道token是否出现在开头、结尾,或者是否出现了多个)连续多次。

编辑:其他示例

split_on( "roroEuropa", "ro" ) // [ "ro", "ro", "Eu", "ro", "pa" ]
split_on( "rorEuropa", "ro" ) // [ "ro", "rEu", "ro", "pa" ]
split_on( "Euroroparo", "ro" ) // [ "Eu", "ro", "ro", "pa", "ro" ]

最佳答案

这将是一个可能的解决方案。你可以把它写成一行,但我将其分成单独的语句来演示它是如何工作的:

let tgt     = "roEuroroparo"
let token = "ro"

// Split into an array of strings:
let t1 = tgt.componentsSeparatedByString(token)
println(t1) // [, Eu, , pa, ]

// Convert each string to an array:
let t2 = map(t1) { [$0] }
println(t2) // [[], [Eu], [], [pa], []]

// Interpose the token:
let t3 = [token].join(t2)
println(t3) // [, ro, Eu, ro, , ro, pa, ro, ]

// Remove empty strings:
let result = filter(t3) { countElements($0) > 0 }
println(result) // [ro, Eu, ro, ro, pa, ro]

关于string - 如何根据标记将字符串分解为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27695131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com