首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scala:检查字符串中是否只有表现奇怪的数字

Scala:检查字符串中是否只有表现奇怪的数字
EN

Stack Overflow用户
提问于 2021-12-07 07:15:57
回答 2查看 48关注 0票数 0

当我申请入口时,当我申请入口时,我编写了代码,代码按预期的方式工作,而不是只带数字的空字符串,也不只是数字:

代码语言:javascript
运行
复制
   def checkDigits(nameOrId: String): Unit = {

      def isAllDigits(x: String) = x forall (c => c.isDigit)

      if (isAllDigits(nameOrId)) print("WITH_ID ")
      else print("WITH_NAME")
  }

但是当我申请入学“-value”时,它没有打印"WITH_NAME",而是"WITH_ID“。所以它把"“识别为数字字符!

我做错了什么,如何改进我的代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-07 07:40:46

forall方法检查集合中的所有值是否为真测试。如果没有值,则返回true,因为所有值都通过测试。

对于您想要的行为,您需要添加一个额外的测试:

代码语言:javascript
运行
复制
def isAllDigits(x: String) = x.nonEmpty && x.forall(_.isDigit)
票数 2
EN

Stack Overflow用户

发布于 2021-12-07 17:21:22

regex的替代方法是使用火柴,它应该匹配整个字符串并匹配一个或多个数字。

请注意,您的方法def checkDigits返回单元,因为您只是在打印。若要使其返回布尔值,可以使用:

代码语言:javascript
运行
复制
def checkDigits(x: String) = x.matches("\\d+")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70256195

复制
相关文章

相似问题

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