在 Rust 中有没有一种方法可以在不求助于正则表达式的情况下检查字符串是否包含 float ?
给出与此类似的结果(使用正则表达式:https://regex101.com/r/pV6wJ6/2)
re = Regex::new(r#"^-?(0|[1-9]\d*)(\.\d+)?$"#).unwrap()
assert_eq!(is_number(some_string), re.is_match(some_string))
最佳答案
您没有给出任何示例,所以我将使用 "1.23"
和 "bob"
。
尝试解析它:
fn main() {
let num = "1.23".parse::<f64>();
match num {
Ok(val) => println!("Yes, it was a number ({})", val),
Err(why) => println!("Doesn't look like a number ({})", why),
}
}
str::parse
可以返回任何实现 FromStr
trait 的类型.在本例中,f64
定义了 ParseFloatError
作为将字符串转换为 float 时可能出现的错误。
如果您只是关心它是不是数字,您可以使用is_ok
:
fn main() {
let is_num = "1.23".parse::<f64>().is_ok();
println!("Is a number: {}", is_num);
}
关于rust - 如何检查字符串是否代表 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921959/