首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查字符是ASCII数字还是句号?

如何检查字符是ASCII数字还是句号?
EN

Stack Overflow用户
提问于 2021-02-06 21:13:06
回答 2查看 203关注 0票数 1

我想检查一下单个char是ASCII码('1' - '9')还是句点('.')。在Rust中做到这一点的最好方法是什么?我知道is_digit(10)是用于数字的,但是我该如何处理数字或句点(.)呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-06 22:08:28

char::is_numeric的一个小问题可能是它在多个ASCII 0..=9上匹配,例如:

代码语言:javascript
复制
'½'.is_numeric() == true

如果你只想匹配ASCII 0..=9,这里有char::is_ascii_digit

后者是使用matches!宏来实现的。您还可以将宏用于您的用例,例如:

代码语言:javascript
复制
if matches!(c, '0'..='9' | '.') {
  // Character is ASCII digit '0' up to and including '9' or '.'
}
票数 7
EN

Stack Overflow用户

发布于 2021-02-06 21:15:42

使用带有'.'相等性检查的is_numeric OR:

代码语言:javascript
复制
fn is_numeric_or_period(c: char) -> bool {
    char::is_numeric(c) || c == '.'
}

注意:对于ASCII码字符串,is_numeric匹配所有数字unicode字符,并且行为与is_ascii_digit相同,但是如果您正在处理unicode字符串,并且只想匹配ASCII码数字字符,则refer to @Jason's answer

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66077286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档