Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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中的字符串长度_Rust - Fatal编程技术网

比较Rust中的字符串长度

比较Rust中的字符串长度,rust,Rust,在Rust中比较字符串长度的惯用方法是什么,以说明字符串长度相等的情况 中有一段代码,但如果给定的字符串长度相等,它只返回后一个字符串: fn最长的y.len(){ x }否则{ Y } } 有人指出,.len()计算字节而不是Unicode字符。所需答案应包括一个函数,该函数在其中一个字符串以Unicode字符表示较长时返回最长的字符串;或者在字符串长度相等的情况下 使用std::cmp::排序; fn最长{ 匹配a.chars().count().cmp(&b.chars().count(

在Rust中比较字符串长度的惯用方法是什么,以说明字符串长度相等的情况

中有一段代码,但如果给定的字符串长度相等,它只返回后一个字符串:

fn最长的y.len(){
x
}否则{
Y
}
}
有人指出,
.len()
计算字节而不是Unicode字符。所需答案应包括一个函数,该函数在其中一个字符串以Unicode字符表示较长时返回最长的字符串;或者在字符串长度相等的情况下

使用std::cmp::排序;
fn最长{
匹配a.chars().count().cmp(&b.chars().count()){
排序::相等=>无,
排序::更大=>一些(a),
_=>一些(b),
}
}

有必要问一下如何比较两个整数吗?而且字符串的“长度”很少是一个有趣的信息。根据你的自我回答,我认为这个问题是(阅读所有答案)的重复。但是,我不知道我是如何从单独阅读问题中发现这一点的,因此我投票选择“不清楚”。例如,如果您对字符数感兴趣,您可以将
a.chars().count()
b.chars().count()
进行比较,或者,如果您可能有非常不同的长度,do See还询问了如何比较两个字符串的长度,然后提供了一段代码,可以准确地进行比较。如果你自己没有回答,一个潜在的回答者怎么能猜到你想要的答案呢?你能把问题编辑得更清楚一些吗?合乎逻辑的是,“考虑到字符串长度相等的情况”的答案可能是“使用
>=
而不是
”——这就是我最初假设你的意思。注意,既然
.len()
是字节长度,
“ƒoo.len()==4
,而
“foo.len())==3
@user2722968有什么更好的选择?@Stargateur true,抱歉,已编辑。如果要计算图形(视觉上不同的字符),请更改为使用
.chars().count()
现在也使用
unicode分段::graphemes()
而不是
unicode分段
板条箱中的
chars()
而不是Unicode标量值。例如,表情符号通常由多个Unicode标量值组成。