在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)
这有什么问题?请随时发表评论。
最佳答案
正如其他人所指出的,将字符与字符串进行比较是行不通的。比较字符串将起作用:
(map #(= (clojure.string/upper-case %) (str %)) "Hello")
=> (true false false false false)
然而,这更直接:
(map #(Character/isUpperCase %) "Hello")
=> (true false false false false)
https://stackoverflow.com/questions/67227767/