Você está aqui: LISP ::: Dicas & Truques ::: Strings e Caracteres |
Como quebrar uma string em suas partes em LISP usando uma função personalizadaQuantidade de visualizações: 374 vezes |
Em várias situações, principalmente quando estamos lendo arquivos CSV em LISP, nós precisamos separar uma frase ou texto em suas partes, ou seja, explodir ela usando um caractere como separador. As linguagens LISP, Common Lisp e AutoLISP não fornecem uma função pronta para esta tarefa, nos forçando a recorrer a códigos de terceiros. Porém, não é difícil fazer a nossa própria implementação de uma função quebrar_string() em LISP. E é isso que vou demonstrar nessa dica. A função apresentada abaixo recebe uma frase ou texto e um caractere que será usado como delimitador para separar a string em suas partes individuais. O retorno da função é uma lista. Eis o código LISP completo para o exemplo: ; Função que recebe uma frase ou texto e um caractere ; e quebra (separa, explode) a frase ou texto usando ; o caractere informado e retorna uma lista de ; palavras (defun quebrar_string(texto caractere) (loop for i = 0 then (1+ j) as j = (position (coerce caractere 'character) texto :start i) collect (subseq texto i j) while j) ) ; Esta é a função principal (defun principal() ; variáveis usadas no exemplo (let ((frase)(caractere)(partes)) ; vamos criar a frase que será quebrada em partes (setq frase "Gosto de programar em LISP") ; agora vamos declarar o caractere que será usado ; como separador. Aqui vou usar o espaço (setq caractere " ") ; agora obtemos as partes da string (setq partes (quebrar_string frase caractere)) ; vamos exibir a quantidade de partes da string ; agora vamos obter o tamanho da lista (format t "A string foi quebrada em ~D partes~%" (list-length partes)) ; e agora mostramos as partes individualmente (write-line "As partes da string são:") (dolist (palavra partes) ; e exibimos cada valor individualmente (format t "~a~%" palavra) ) ) ) ; Auto-executa a função principal() (principal) Ao executar este código LISP nós teremos o seguinte resultado: A string foi quebrada em 5 partes As partes da string são: Gosto de programar em LISP |
![]() |
Veja mais Dicas e truques de LISP |
Dicas e truques de outras linguagens |
Java - Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |