Clojure:
Extraindo substrings

Como Fazer:

Com Clojure, extraímos substrings com a função subs. A função requer a string original e o índice inicial (incluído). Um índice final (não incluído) é opcional. Veja só:

(def saudacao "Olá, João! Bem-vindo ao clube.")

;; Extrair o nome "João"
(println (subs saudacao 5 9))
;; Saída esperada: "João"

;; Extrair sem especificar o índice final pega tudo até o fim
(println (subs saudacao 10))
;; Saída esperada: "Bem-vindo ao clube."

subs é direto: dê o que começar e onde terminar, e ele faz o serviço.

Mergulhando Fundo

A função subs vem da longa tradição de linguagens de programação que trabalham com strings - extração de substring é uma necessidade comum. Em Clojure, que é uma linguagem moderna na família Lisp, subs é a ferramenta básica para isso, mas verificando-se a imutabilidade das strings em Clojure, qualquer extração resulta em uma nova string.

Existem alternativas em Clojure, como usar regex (expressões regulares) com re-find e re-matches ou manipulações em nível de coleção com o take e drop. Escolhemos a ferramenta dependendo da complexidade da nossa necessidade.

Particularmente, subs funciona bem para casos simples e claros. Já regex é a melhor opção para padrões complexos. Como em todas as operações de string, temos que lidar com a indexação baseada em zero — o primeiro elemento é indexado por 0.

Veja Também