Vérifiez si Ssortingng contient une sous-chaîne dans clojure

Je dois vérifier si une chaîne Java contient une sous-chaîne dans mes tests.

Cela ne fonctionne pas car les chaînes Java ne sont pas des collections:

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

Est-il possible de convertir des chaînes java en collections? Ou puis-je vérifier les occurrences de sous-chaînes autrement?

La méthode la plus simple consiste à utiliser la méthode contains de java.lang.Ssortingng :

(.contains "The Band Named Isis" "Isis")

=> vrai

Vous pouvez aussi le faire avec des expressions régulières, par exemple

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

=> “Isis”

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

=> nul

Si vous avez besoin que votre résultat soit vrai ou faux, vous pouvez l’emballer dans un boolean :

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

=> faux

Clojure 1.8 a introduit comprend fonction.

 (use '[clojure.ssortingng :as s]) (s/includes? "abc" "ab") ; true (s/includes? "abc" "cd") ; false