How to reverse the middle words of a string in Swift

1 Answer

0 votes
import Foundation

func reverseMiddleWords(_ s: String) -> String {
    let words = s.split(whereSeparator: \.isWhitespace)

    guard words.count >= 3 else {
        return s   // nothing to reverse
    }

    let first = words.first!
    let last = words.last!
    let middle = words.dropFirst().dropLast().map { String($0.reversed()) }

    return ([String(first)] + middle + [String(last)]).joined(separator: " ")
}

print(reverseMiddleWords("Hello how are you today"))



/*
run:

Hello woh era uoy today

*/

 



answered Dec 25, 2025 by avibootz
...