Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Capitalise first letter of every sentence

How do I capitalise the first letter of every sentence in a string? Should I use .capitalisedString?

like image 975
Tom Coomer Avatar asked Nov 27 '25 05:11

Tom Coomer


1 Answers

You can enumerate String per sentences by using NSStringEnumerationOptions.BySentences. But it detect a "sentence" only if the first character is upper-cased.

So, This may not be perfect, but you can try this:

import Foundation

let text:String = "lorem ipsum dolor elit, sed aliqfuas. imfs enim ad veniam, quis nostrud consequat? duis aute irure dolor in pariatur."

var result = ""
text.uppercaseString.enumerateSubstringsInRange(text.startIndex..<text.endIndex, options: .BySentences) { (_, range, _, _) in
//  ^^^^^^^^^^^^^^^^ enumerate all upper cased string

    var substring = text[range] // retrieve substring from original string

    let first = substring.removeAtIndex(substring.startIndex)
    result += String(first).uppercaseString + substring
}

// result -> "Lorem ipsum dolor elit, sed aliqfuas. Imfs enim ad veniam, quis nostrud consequat? Duis aute irure dolor in pariatur."
like image 53
rintaro Avatar answered Nov 28 '25 20:11

rintaro



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!