![](/img/trans.png)
[英]simpler way to check if two different strings are in a third string in python
[英]Simpler way to check if string start with a digit in Rust?
我目前使用的是這個
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 制成,則可以直接對字節( u8
)進行操作:
a.as_bytes()[0].is_ascii_digit()
或者
(b'0'..=b'9').contains(&a.as_bytes()[0])
更一般的設置(在我看來,更慣用):
a.chars().next().unwrap().is_numeric()
這一切看起來有點笨拙的原因是可能有一些事情出錯(在其他語言中很容易被忽略):
Option
/ unwrap
-land 從您的原始解決方案開始並parse
:
fn main() {
let a = "abc123";
let b = "1a2b3c";
println!("{:?}", a[0..1].parse::<u8>().is_ok()); // false
println!("{:?}", b[0..1].parse::<u8>().is_ok()); // true
}
該字符串保證為非空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.