Search code examples
swiftstringcountsentence

How can I count the number of sentences in a given text in Swift?


I wanted to create a playground that would count the number of sentences of a given text.

let input = "That would be the text . it hast 3. periods. "

func sentencecount() {
    let periods = CharacterSet.whitespacesAndNewlines.union(.punctuationCharacters)
    let periods = input.components(separatedBy: spaces)
    let periods2  = Int (words.count)
    print ("The Average Sentence length is \(periods2)") 
}
sentencecount()

Solution

  • Just add the character in charset by which you are going to differentiate your sentences:

    I am assuming ? . , for now:

        let input = "That would be the text. it hast 3? periods."
        let charset = CharacterSet(charactersIn: ".?,")
        let arr = input.components(separatedBy: charset)
        let count = arr.count - 1
    

    Here arr would be:

    ["That would be the text", " it hast 3", " periods", ""]
    

    decrease count by 1, to get actual sentences.

    Note: If you don't want to consider " , " then remove it from charset.