我有以下代码来尝试从字符串中删除非数字:
(apply str
(flatten
(map
(fn[x]
(if (number? x) x))
"ij443kj"
)
)
)
但它总是返回一个空字符串而不是“443”。有谁知道我在这里做错了什么以及如何获得想要的结果?
最佳答案
号码?不是这样的。它检查类型。如果您向其传递一个字符,则无论该字符是什么,每次都会返回 false。
我可能会为此使用正则表达式,但如果您想保持程序的相同想法,您可以这样做
(apply str (filter #(#{\0,\1,\2,\3,\4,\5,\6,\7,\8,\9} %) "abc123def"))
甚至更好
(apply str (filter #(Character/isDigit %) myString))
关于Clojure从字符串中删除非数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046305/