Мне нужно изменить порядок каждого слова в предложении. У меня есть строка разделителей, чтобы разделить мой код на слова, и функция swap(0,1)
, чтобы изменить порядок букв в слове. Однако мне нужно пропускать первую и последнюю букву в каждом слове, и я не могу использовать для этих целей регулярные выражения. Вот какой-то код:
const SEPARATORS: &str = " ,;:!?./%*$=+)@_-('\"&1234567890\r\n";
fn main() {
dbg!(mix("According, research"));
}
fn mix(s: &str) -> String {
let mut a: Vec<char> = s.chars().collect();
for group in a.split_mut(|num| SEPARATORS.contains(*num)) {
group.chunks_exact_mut(2).for_each(|x| x.swap(0, 1));
}
a.iter().collect()
}
Вывод следующий:
[src/main.rs:4] mix("According, research") = "cAocdrnig, eresrahc"
Но мне нужен следующий вывод:
[src/main.rs:4] mix("According, research") = "Accroidng, rseaerch"
Кто-то знает, как это исправить?