let word = "String to be reverse"
var reversed = ""
for char in word.characters {
reversed.insert(char, at: reversed.startIndex)
}
print(reversed)
这将返回:“ esrever eb ot gnirtS” 我正在尝试做的就是这样的“ ngirtS ot eb esrever”
答案 0 :(得分:2)
您可以使用选项.byWords
在range中使用enumerateSubstrings,获取所有子字符串范围,并将它们替换为相同范围的子字符串:
let string = "String to be reverse"
var ranges: [Range<String.Index>] = []
string.enumerateSubstrings(in: string.startIndex..., options: .byWords) { _, range, _, _ in
ranges.append(range)
}
var result = string
for range in ranges {
var newWord = string[range]
var reversed = ""
while !newWord.isEmpty {
reversed.append(newWord.removeLast())
}
result.replaceSubrange(range, with: reversed)
}
print(result) // "gnirtS ot eb esrever"