gpt4 book ai didi

scala - 在 Scala 中检查字符是否为 ASCII 字母 (a-Z) 的优雅方法是什么?

转载 作者:行者123 更新时间:2023-12-04 10:01:05 25 4
gpt4 key购买 nike

我目前正在使用扫描器和解析器,需要一个接受 ASCII 字母字符的解析器 - 所以我不能使用 char.isLetter .

我自己想出了两个解决方案。我不喜欢他们两个。

正则表达式

def letter = elem("ascii letter", _.toString.matches("""[a-zA-Z]"""))

用正则表达式检查这么简单的事情似乎有点“矫枉过正”。

范围检查
def letter = elem("ascii letter", c => ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'))

在我看来,这将是 Java 的发展方向。但它不是真的可读。

这个问题有更干净、更像 Scala 的解决方案吗?我并不真正担心性能,因为在这种情况下无关紧要。

最佳答案

你说不能用Char.isLetter因为你只想要 ASCII 字母。为什么不将其限制在 7 位 ASCII 字符范围内?

def isAsciiLetter(c: Char) = c.isLetter && c <= 'z'

如果读者想检查包含非字母的 ASCII,则:
def isAscii(c: Char) = c.toInt <= 127

关于scala - 在 Scala 中检查字符是否为 ASCII 字母 (a-Z) 的优雅方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439765/

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