Manipulação de strings em Julia

Primeiros Passos
Ferramentas

Aprender a manipular strings em Julia é essencial para transformar dados brutos em informações úteis. Neste post, você vai conhecer desde os conceitos básicos até operações e formatações mais avançadas, aprendendo a organizar, padronizar e preparar seus dados de forma eficiente para qualquer análise.

Autores
Afiliação

Universidade Estadual de Campinas

Universidade Estadual de Campinas

Data de Publicação

14 de setembro de 2025

Introdução

Manipular strings é uma habilidade essencial em análise de dados, seja para organizar nomes de variáveis, corrigir e padronizar informações textuais ou gerar relatórios automatizados ou mesmo para realizar tarefaz de text mining. Em Julia podemos realizar operações básicas até buscas complexas com expressões regulares.

Neste post, exploraremos como criar, modificar e formatar strings utilizando apenas recursos do Julia base.

Criação de strings

Em Julia, criamos um objeto do tipo String colocando o texto entre aspas duplas (") ou três aspas duplas ("""). As duas maneiras de criar o objeto são equivalentes, então sinta-se à vontade para usar a que preferir.

"a"
"a"
"""a"""
"a"
"a" == """a"""
true

Além disso, é importante estar atento a comandos especiais, como o \n, que representa uma quebra de linha. Para criar um objeto que ignore qualquer caractere especial, ou seja, que contenha apenas o texto literal, basta prefixar a string com raw antes das aspas.

"a
b"
"a\nb"
print("a\nb")
a
b
print(raw"a\nb")
a\nb

Caracteres

Um detalhe importante em Julia é a distinção entre dois tipos de objetos: String e Char. Ambos representam textos, mas Char contém apenas um caractere e é criado com aspas simples (') em vez de aspas duplas.

typeof("a")
String
typeof('a')
Char

Objetos do tipo Char possuem algumas particularidades interessantes. Por exemplo, eles são compatíveis com operações de soma e subtração, nas quais a diferença entre os códigos Unicode dos caracteres é calculada.

'A' + 1
'B': ASCII/Unicode U+0042 (category Lu: Letter, uppercase)
'E' - 'C'
2

O funcionamento dos caracteres está relacionado ao Unicode/UTF-8, uma codificação de caracteres que inclui letras tradicionais e caracteres especiais. Para conferir todos os códigos disponíveis, basta acessar este link. Para utilizar um caractere por meio do código UTF-8, basta utilizar \u seguido do respectivo código.

'\u2200'
'∀': Unicode U+2200 (category Sm: Symbol, math)

Junção e separação

A maneira mais básica de unir strings é por meio do operador *, que combina os textos em uma única string.

"banana" * " " * "pera"
"banana pera"

Para unificar todas as strings contidas em um vetor, basta utilizar a função join() e especificar qual será o separador entre os elementos. E para realizar o processo inverso, ou seja, separar uma string em um vetor, utiliza-se a função split(), especificando o ponto em que os cortes devem ser feitos.

frutas = ["banana", "pera", "morango"];
join(frutas, ", ")
"banana, pera, morango"
join(frutas, "-")
"banana-pera-morango"
split("banana-pera-morango", "-")
3-element Vector{SubString{String}}:
 "banana"
 "pera"
 "morango"

Também é possível copiar uma string várias vezes por meio da função repeat, que retorna uma nova string com o texto replicado pelo número de vezes especificado.

repeat("ba", 5)
"bababababa"

Busca e substituição

Para acessar partes de uma string, o processo é semelhante ao acesso a um vetor, em que cada caractere é tratado como um elemento. Podemos tanto selecionar uma única posição, obtendo um Char, ou uma sequência de caracteres, resultando em uma nova string.

"abcd"[1]     # Primeiro elemento
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
"abcd"[end]   # Último elemento
'd': ASCII/Unicode U+0064 (category Ll: Letter, lowercase)
"abcd"[2:end] # Do segundo ao último elemento
"bcd"
Observação

Ao extrair apenas um caractere de uma string, o tipo de objeto retornado pode variar a depender da forma como a extração é realizada.

"abcd"[1]   # Char
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
"abcd"[1:1] # String
"a"

Em Julia, é possível realizar buscas dentro de strings de diferentes maneiras. Uma abordagem mais avançada é o uso de expressões regulares, que permitem buscar padrões complexos de texto. Podemos criar uma expressão regular prefixando a string com a letra r.

r"." # Metacaractere que corresponde a qualquer caractere
r"."

Para aprender mais sobre a sintaxe completa de expressões regulares, você pode acessar este link. No entanto, Julia também oferece funções simples para buscar texto diretamente, sem precisar de regex:

  • occursin(): verifica se determinado texto está presente na string.
  • findfirst(): retorna a posição da primeira ocorrência do texto na string.
  • findlast(): retorna a posição da última ocorrência do texto na string.
texto = "Zero ao Julia"
"Zero ao Julia"
occursin("Julia", texto)   
true
findfirst("a", texto)  
6:6
findlast("a", texto)       
13:13

As funções startswith() e endswith() verificam, respectivamente, se uma string começa ou termina com um determinado texto.

texto = "Julia"
"Julia"
startswith(texto, "j")
false
endswith(texto, "ia")
true
startswith(texto, "J")
true

Também é possível substituir trechos de texto em uma string utilizando a função replace.

replace("banana", "a" => "o")
"bonono"

Formatações

Para alternar as letras de uma string entre maiúsculas e minúsculas, existem três funções principais:

  • uppercase: converte todas as letras para maiúsculas.
  • lowercase: converte todas as letras para minúsculas.
  • titlecase: converte a primeira letra de cada palavra para maiúscula e as demais para minúscula.
texto = "ZERO ao julia"
"ZERO ao julia"
uppercase(texto)
"ZERO AO JULIA"
lowercase(texto)
"zero ao julia"
titlecase(texto)
"Zero Ao Julia"

Como não existe uma função específica para capitalizar apenas a primeira letra da string (deixando as demais minúsculas), é necessário combinar uppercase com lowercase para realizar esse processo.

uppercase(texto[1]) * lowercase(texto[2:end])
"Zero ao julia"

Além disso, com a função reverse, é possível obter os caracteres de uma string em ordem inversa.

reverse("abcde")
"edcba"

Também é possível remover espaços em branco de uma string de maneira simples. Para eliminar espaços apenas no início, utiliza-se lstrip(); apenas no final, rstrip(); e em ambas as extremidades, strip().

lstrip("  julia  ")
"julia  "
rstrip("  julia  ")
"  julia"
strip("  julia  ")
"julia"

Interpolação com variáveis e números

Por fim, é possível inserir expressões e valores de variáveis diretamente dentro de strings usando a sintaxe $().

a = 2
2
b = 5
5
"Soma: $(a+b)"
"Soma: 7"

Conclusão

Portanto, manipular strings com eficiência em Julia é essencial, já que dados raramente chegam prontos para análise. Ao dominar essas técnicas, você poderá limpar, formatar e organizar informações textuais com facilidade, utilizando-as de forma natural em seus projetos.

Nota

Ferramentas de IA foram utilizadas para correção ortográfica e aprimoramento do texto.