a) 的结果为 true Clojure-6ren">
gpt4 book ai didi

string - 如何在 Clojure 中按字母顺序比较两个字符串?

转载 作者:行者123 更新时间:2023-12-02 03:06:35 25 4
gpt4 key购买 nike

如果我有一个字符串 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/

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