我需要在测试中检查Java字符串是否包含子字符串。

这不起作用,因为java字符串不是集合:

(deftest test_8
    (testing "get page from sputnik"
        (let [
            band "Isis"
            page (get-sputnikpage-for-artist band)
            ]
            (is (contains? band "Isis")))));does NOT work

有没有一种方法可以将Java字符串转换为集合?还是可以其他方式检查子字符串的出现?

最佳答案

最简单的方法是使用contains中的java.lang.String方法:
(.contains "The Band Named Isis" "Isis")
=>是的

您也可以使用正则表达式进行操作,例如

(re-find #"Isis" "The Band Named Isis")

=>“Isis”
(re-find #"Osiris" "The Band Named Isis")

=>无

如果您需要结果为真或假,则可以将其包装在boolean中:
(boolean (re-find #"Osiris" "The Band Named Isis"))
=>错误

09-13 11:15