Menu
Coddy logo textTech

Iterando sobre Caracteres (strsplit)

Parte da seção Fundamentos do Journey de R da Coddy — lição 65 de 78.

E se você precisar processar cada caractere em uma string individualmente? Diferente dos vetores, você não pode percorrer diretamente os caracteres de uma string em R. A função strsplit() resolve isso dividindo uma string em um vetor de caracteres.

A função strsplit() recebe dois argumentos: a string a ser dividida e o separador. Para dividir em caracteres individuais, use uma string vazia "" como o separador:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

Saída:

[1] "h" "e" "l" "l" "o"

Observe o [[1]] ao final. Isso ocorre porque strsplit() retorna uma lista, e precisamos extrair o primeiro elemento para obter nosso vetor de caracteres. Assim que você tiver os caracteres como um vetor, poderá iterar sobre eles usando as técnicas que já aprendeu:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

Saída:

[1] "R"

Esta técnica é essencial para tarefas como contar caracteres específicos, inverter strings ou validar a entrada caractere por caractere.

challenge icon

Desafio

Fácil

Você receberá uma única linha de entrada contendo uma palavra (ex: programming).

Usando strsplit() para dividir a string em caracteres individuais:

  1. Divida a palavra de entrada em um vetor de caracteres
  2. Percorra cada caractere no vetor usando um loop
  3. Conte quantas vezes a letra "a" aparece na palavra (case-sensitive)
  4. Imprima cada caractere em sua própria linha usando print()
  5. Após o loop, imprima a contagem usando cat() com o formato: Count of 'a': X seguido por uma nova linha

Por exemplo, se a entrada for:

banana

A saída deve ser:

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

Explicação: A palavra "banana" é dividida nos caracteres c("b", "a", "n", "a", "n", "a"). Cada caractere é impresso, e a letra "a" aparece 3 vezes.

Folha de consulta

Para dividir uma string em caracteres individuais, use strsplit() com uma string vazia "" como separador:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

Saída:

[1] "h" "e" "l" "l" "o"

O [[1]] extrai o primeiro elemento da lista retornada por strsplit(), resultando em um vetor de caracteres.

Você pode então percorrer os caracteres em um loop:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

Experimente você mesmo

# Ler entrada
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# Inicializar contador para a letra 'a'
count_a <- 0

# TODO: Escreva seu código abaixo
# 1. Use strsplit() para dividir a palavra em caracteres individuais
# 2. Percorra cada caractere em um loop
# 3. Imprima cada caractere usando print()
# 4. Conte quantas vezes 'a' aparece

# Exibir a contagem de 'a'
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos