Menu
Coddy logo textTech

Iterare sui caratteri (strsplit

Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 65 di 78.

E se avessi bisogno di elaborare singolarmente ogni carattere di una stringa? A differenza dei vettori, in R non puoi scorrere direttamente i caratteri di una stringa. La funzione strsplit() risolve questo problema suddividendo una stringa in un vettore di caratteri.

La funzione strsplit() accetta due argomenti: la stringa da dividere e il separatore. Per dividere in singoli caratteri, usa una stringa vuota "" come separatore:

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

Output:

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

Nota il [[1]] alla fine. Questo perché strsplit() restituisce una lista e dobbiamo estrarre il primo elemento per ottenere il nostro vettore di caratteri. Una volta che hai i caratteri come vettore, puoi scorrerli usando le tecniche che hai già imparato:

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

Output:

[1] "R"

Questa tecnica è essenziale per attività come contare caratteri specifici, invertire stringhe o convalidare l'input carattere per carattere.

challenge icon

Sfida

Facile

Riceverai una singola riga di input contenente una parola (ad es., programming).

Usa strsplit() per dividere la stringa in singoli caratteri:

  1. Dividi la parola di input in un vettore di caratteri
  2. Scorri ogni carattere del vettore
  3. Conta quante volte la lettera "a" compare nella parola (distinguendo tra maiuscole e minuscole)
  4. Stampa ogni carattere su una riga separata usando print()
  5. Dopo il ciclo, stampa il conteggio usando cat() con il formato: Count of 'a': X seguito da un carattere di nuova riga

Ad esempio, se l'input è:

banana

L'output dovrebbe essere:

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

Spiegazione: La parola "banana" viene divisa nei caratteri c("b", "a", "n", "a", "n", "a"). Ogni carattere viene stampato e la lettera "a" compare 3 volte.

Provalo tu

# Leggi l'input
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# Inizializza il contatore per la lettera 'a'
count_a <- 0

# TODO: Scrivi il tuo codice qui sotto
# 1. Usa strsplit() per dividere la parola in singoli caratteri
# 2. Scorri ogni carattere
# 3. Stampa ogni carattere usando print()
# 4. Conta quante volte compare 'a'

# Mostra il conteggio di 'a'
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore R online