【发布时间】:2021-04-23 09:52:03
【问题描述】:
在clojure中使用map,检查字符串是否包含大写字符。
(map #(= (clojure.string/upper-case %) %) "Hello")
预期的结果。
(true false false false false)
很遗憾,结果出乎意料。
(false false false false false)
我做了一个实验,把第一个“%”中的“H”替换掉,结果还是出乎意料。
(map #(= (clojure.string/upper-case "H") %) "Hello")
(false false false false false)
当我在第二个“%”中替换“H”时,结果发生了变化,这是一个预期的结果。
(map #(= (clojure.string/upper-case %) "H) "Hello")
(true false false false false)
这有什么问题?请随时发表评论。
【问题讨论】:
-
您说您需要检查字符串是否包含大写字符,所以我假设您不需要知道哪个是正确的吗?在这种情况下,为什么不检查整个字符串呢?
(= (str/lower-case "Hello") "Hello")应该告诉你你的字符串最初是否是小写的 -
这是程序的一小部分,由于某些原因,我需要一个字符一个字符地检查一个长字符串。
-
您将字符串与字符进行比较,您的测试实际上如下所示:
(= "H" \H)这是错误的。 -
下面有一些很好的答案。您可能还对
tupelo.chars(cljdoc.org/d/tupelo/tupelo/21.04.13/api/tupelo.chars) 和tupelo.string(cljdoc.org/d/tupelo/tupelo/21.04.13/api/tupelo.string) 中的帮助和便利功能感兴趣
标签: dictionary clojure