0
如何反轉Rust 0.9中的字符串?如何反轉0.9中的字符串?
根據rosettacode.org這個工作在0.8:
let reversed:~str = "一二三四五六七八九十".rev_iter().collect();
...但我不能讓迭代器對字符串的工作在0.9。
也試過std::str::StrSlice::bytes_rev
但我還沒有想出一個乾淨的方式將結果轉換回字符串,而不會編譯器窒息。
哇哦,我是如此接近,甚至沒有意識到這一點。謝謝! –
請注意,如果您有任何分解的字符(如「e \ u0301」(é)),則它將無法正常工作,因爲它會交換這兩個字符,並且組合急性重音會影響錯誤的字符。 –
正如@KevinBallard所說,這個迭代遍歷各個'char'(它們是Unicode代碼點),所以反轉只是重新排列代碼點。真正的字形重新排序(用於更正確的Unicode反轉)需要字形處理,Rust stdlib目前完全沒有。 :( – huon