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