如何通过空格和问号、感叹号和句点等特殊字符将 Swift 字符串拆分为数组?

问题描述 投票:0回答:1

我试图将 Swift 中的字符串拆分为单词数组,但我不仅想用空格分隔单词,还想用特殊字符分隔单词,例如问号 (?)、感叹号 (!) 和句点 (. ).

例如,给定字符串

"When is your birthday?"
,我想得到以下输出:

["When", "is", "your", "birthday", "?"]

我目前可以使用

components(separatedBy: " ")
按空格分割字符串,但我不确定如何在分割中包含特殊字符。

如何用空格和标点符号分割字符串?理想情况下,我希望该解决方案适用于问号 (?)、感叹号 (!) 和句号 (.),但足够灵活,可以在将来根据需要添加其他字符。

感谢您的帮助!

arrays swift xcode swiftui
1个回答
0
投票

如果您想使用

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)")
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.