【问题标题】:In Swift, can you split a string by another string, not just a character?在 Swift 中,你可以用另一个字符串分割一个字符串,而不仅仅是一个字符吗?
【发布时间】:2023-03-21 08:07:01
【问题描述】:

在 Swift 中,很容易在字符上拆分字符串并将结果返回到数组中。我想知道的是,您是否可以将一个字符串拆分为另一个字符串,而不仅仅是一个字符,就像这样...

let inputString = "This123Is123A123Test"
let splits = inputString.split(onString:"123")
// splits == ["This", "Is", "A", "Test"]

我认为NSString 可能有办法做到这一点,当然我可以在String 扩展中推出自己的方法,但我想看看 Swift 是否有原生的东西。

【问题讨论】:

  • @AhmadF,这不是将字符串拆分为数组的副本。这是专门拆分字符串在字符串上 而不是字符。因此,请您删除 dup 投票。谢谢! :)
  • 如果您尝试cmd 并单击components(separatedBy: "123"),您会注意到separator 参数的类型是StringProtocol,这意味着它可以采用单个字符或字符串:)
  • 是的,但我没有看那个。我正在查看没有该选项的“拆分”功能,因此我的问题是具体要求。我在发布之前看到了另一个问题,但忽略了它,因为它专门询问了一个字符,而我需要一个字符串分隔符。同样,即使答案相同,这个问题也不是重复的,就像您可以使用咖啡杯来盛咖啡和热巧克力一样。同一个杯子。使用它的不同原因。再次,请删除 dup 投票。谢谢!

标签: swift split swift4


【解决方案1】:
import Foundation

let inputString = "This123Is123A123Test"
let splits = inputString.components(separatedBy: "123")

【讨论】:

  • 太棒了!甚至比我希望的更好,因为与返回 [String.SubSequence]string.split 不同,这将返回 [String],无论如何我最终都需要它! (以前要在最后加.map(String.init),现在不用了!
  • 谢谢你..我正在为此拉头发。
  • 谢谢!就是这个
【解决方案2】:

你是说这个吗?

let developer = "XCode Swift"
let array = developer.characters.split{" "}.map(String.init)

array[0] // XCode
array[1] // Swift

【讨论】:

  • 您没有在 Swift 4 中使用 characters。这并不能满足问题中的要求。
  • 空格可以换成“123”
  • 您的编辑不能在 Swift 4 中编译,不,您不能用“123”替换空格,因为split 只接受一个Character
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 2015-06-26
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多