Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何在0.9中反转字符串?_Rust_Rust 0.9 - Fatal编程技术网

Rust 如何在0.9中反转字符串?

Rust 如何在0.9中反转字符串?,rust,rust-0.9,Rust,Rust 0.9,如何在Rust 0.9中反转字符串 根据0.8中的计算结果: let reversed:~str = "一二三四五六七八九十".rev_iter().collect(); 。。。但是我无法让迭代器在0.9中处理字符串 还尝试了std::str::StrSlice::bytes\u rev,但我还没有找到一种干净的方法将结果转换回字符串,而不受编译器阻塞。首先对字节进行迭代,反转将中断多字节字符(您希望对字符进行迭代) 请注意,如果您有任何分解的字符,例如“e\u0301”(é),这将不会像预

如何在Rust 0.9中反转字符串

根据0.8中的计算结果:

let reversed:~str = "一二三四五六七八九十".rev_iter().collect(); 
。。。但是我无法让迭代器在0.9中处理字符串


还尝试了
std::str::StrSlice::bytes\u rev
,但我还没有找到一种干净的方法将结果转换回字符串,而不受编译器阻塞。

首先对字节进行迭代,反转将中断多字节字符(您希望对字符进行迭代)


请注意,如果您有任何分解的字符,例如“e\u0301”(é),这将不会像预期的那样工作,因为它将交换这两个字符,组合的尖锐重音将影响错误的字符。正如@KevinBallard所说,这将迭代单个
字符
s(即Unicode码点)所以反转只是重新排列代码点。真正的字素重排序(为了更正确的Unicode反转)需要字素处理,而Rust stdlib目前完全缺乏这种处理(
let s = ~"abc";
let s2: ~str = s.chars_rev().collect();
println!("{:?}", s2);