Извлечение подстрок

Clojure:
Извлечение подстрок

Как это сделать:

Clojure упрощает работу со строками. Для извлечения подстрок функция subs будет вашим главным инструментом:

(let [text "ClojureRocks"]
  (subs text 7)) ; => "Rocks"

(let [text "ClojureRocks"]
  (subs text 0 7)) ; => "Clojure"

И вот оно — укажите начальный индекс и, при необходимости, конечный индекс, и вы отрежете строку именно так, как вам нужно.

Погружение

Извлечение подстрок не новость — это существует с первых дней программирования. В Clojure subs — это простая функция. Она является частью возможностей взаимодействия с Java в Clojure, опираясь на метод substring в Java. Два ключевых момента: отрицательные индексы не разрешены, и она основана на нуле (счет начинается с нуля). Так что запомните это, иначе вы получите смещение на один.

Альтернативы? Конечно. Регулярные выражения с re-find и re-matcher для сложных шаблонов или split, если вы разделяете по разделителю. У каждого инструмента есть свое место, но ничто не сравнится с subs по простоте.

С точки зрения реализации, subs не копирует символы, она делится массивом символов исходной строки. Эффективно, но если ваша исходная строка огромна, и вам нужен только маленький кусочек, вы можете нечаянно сохранить в памяти всю большую строку.

Смотрите также:

  • Официальный API Clojure для работы со строками: clojure.string
  • Java substring: Поскольку это основа за subs. Java substring
  • Регулярные выражения в Clojure: re-find
  • Разделение строк в Clojure: split