Использование метода map(_:)
вместо replacingOccurrences(of:with:)
для получения желаемого результата.
replacingOccurrences(of:with:)
Новая строка, в которой все вхождения цели в приемникезаменено на замену.
Заменяет все вхождения на тот же экземпляр, который передается в replacementString
, т. е. randomArray[Int.random(in: 0...103) (randomArray[Int.random(in: 0...103)]
выполняется только один раз и используется в течение string
для всех вхождений " "
.
let passedSentence = "This is a sample sentence"
let newSentence = (passedSentence.map { (char) -> String in
if char == " " {
return " \(randomArray[Int.random(in: 0...103)]) \(randomArray[Int.random(in: 0...103)]) "
}
return String(char)
}).joined()
print(newSentence)
Если вы используете весь диапазон randomArray
, т. Е. Если randomArray
содержит 104 elements i.e. 0...103
, вы можете напрямую использовать randomElement()
на randomArray
вместо использования random(in:)
на Int
, т.е.
Использование
randomArray.randomElement()
вместо
randomArray[Int.random(in: 0...103)]