- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
a) 的结果为 true Clojure-6ren">
如果我有一个字符串 String a = "Apple"和另一个字符串 String "b"= "Banana"我如何能够比较这两个字符串并得到类似 (b > a) 的结果为 true Clojure?
最佳答案
内置 Clojure 函数 compare
是多种值(包括字符串)的三向比较器,但它通过字符的 UTF-16 Unicode 代码点来比较字符,对于 ASCII 子集,比较大写字母与小写字母的方式不同,所以可能不是您正在寻找。
如果您希望在字符串与 ASCII 子集中的所有字符之间进行不区分大小写的比较,您可以使用如下内容:
(require '[clojure.string :as str])
(compare (str/lower-case s1) (str/lower-case s2))
如果您想要对不同语言/区域设置进行更精美的区域相关字符串比较,可以使用 Java 库,您可以通过 Java 互操作调用它们,例如请参阅https://docs.oracle.com/javase/tutorial/i18n/text/locale.html或 ICU4J 库:http://site.icu-project.org/home/why-use-icu4j
我不知道有什么推荐的方法来替换 clojure.core/<
的定义和clojure.core/>
因此它们的行为与字符串不同。您可以defn
它们在您自己的代码中并覆盖 clojure.core
中的定义,但您可能会从 Clojure 编译器收到有关这样做的警告。如果您不介意这些警告,那就去做吧,但您最好警告其他共同开发或使用您代码的人您正在这样做,以避免误解。
您可以定义自己的函数,名为 <
>
当然,在您自己的命名空间中,您可以随心所欲地进行操作。
关于string - 如何在 Clojure 中按字母顺序比较两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58895698/
我是一名优秀的程序员,十分优秀!