gpt4 book ai didi

string - 在 Rust 中检查字符串是否以数字开头的更简单方法?

转载 作者:行者123 更新时间:2023-12-03 11:41:58 27 4
gpt4 key购买 nike

我目前用的是这个

fn main() {
let a = "abc123";
let b = "1a2b3c";

println!("{}", a[0..1].chars().all(char::is_numeric));
println!("{}", b[0..1].chars().all(char::is_numeric));
}

是否有更惯用和/或更简单的方法来做到这一点?

注意:该字符串保证非空且由ASCII字符组成。

最佳答案

如果确定非空且由ascii构成,则可以直接对bytes(u8)进行操作:

a.as_bytes()[0].is_ascii_digit()

(b'0'..=b'9').contains(&a.as_bytes()[0])

更通用的设置(而且,在我看来,更惯用):

a.chars().next().unwrap().is_numeric()

所有这些看起来有点笨拙的原因是可能会出现一些错误(在其他语言中很容易被忽略):

  • string may be empty => 引导我们进入Option/unwrap-land
  • rust 中的字符串是 UTF-8(这基本上使随机访问字符串变得复杂;请注意,rust 不仅将 0-9 视为数字,如 here 所示)

关于string - 在 Rust 中检查字符串是否以数字开头的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61396610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com