我试图将 Swift 中的字符串拆分为单词数组,但我不仅想用空格分隔单词,还想用特殊字符分隔单词,例如问号 (?)、感叹号 (!) 和句点 (. ).
例如,给定字符串
"When is your birthday?"
,我想得到以下输出:
["When", "is", "your", "birthday", "?"]
我目前可以使用
components(separatedBy: " ")
按空格分割字符串,但我不确定如何在分割中包含特殊字符。
如何用空格和标点符号分割字符串?理想情况下,我希望该解决方案适用于问号 (?)、感叹号 (!) 和句号 (.),但足够灵活,可以在将来根据需要添加其他字符。
感谢您的帮助!
如果您想使用
components(separatedBy: " ")
等...尝试这个简单的方法,
将所有所需的标记替换为 blank space
后跟标记,
如示例代码所示
struct ContentView: View {
let originalText = "When is your birthday?"
let markers = ["?","!","."]
@State private var results: [String] = []
@State private var text = ""
var body: some View {
VStack {
Text(originalText).foregroundStyle(.red)
ForEach(results.indices, id: \.self) { index in
Text(results[index])
}
}
.onAppear {
text = originalText
for marker in markers {
text = text.replacingOccurrences(of: marker, with: " " + marker)
}
text.components(separatedBy: " ").forEach { txt in
results.append(txt)
}
print("results: \(results)")
}
}
}