Menu
Coddy logo textTech

Iterare sulle stringhe

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 67 di 88.

Proprio come gli array, in Ruby è possibile scorrere le stringhe carattere per carattere. Il metodo each_char ti permette di elaborare ogni carattere di una stringa individualmente.

Ecco come funziona:

word = "Ruby"

word.each_char do |char|
  puts char
end

Questo stampa ogni carattere su una riga separata: R, u, b, y. La variabile del blocco char contiene un carattere alla volta mentre l'iteratore attraversa la stringa.

Se ti servono sia il carattere sia la sua posizione, usa each_char.with_index:

word = "Hi"

word.each_char.with_index do |char, index|
  puts "#{index}: #{char}"
end

Questo produce:

0: H
1: i

Un altro metodo utile è chars, che converte una stringa in un array dei suoi caratteri. Questo ti permette di usare tutti i metodi degli array che hai già imparato:

letters = "abc".chars
puts letters  # Stampa: a, b, c

Questi metodi sono utili quando devi analizzare il testo, contare caratteri specifici o trasformare le stringhe carattere per carattere.

challenge icon

Sfida

Facile

Leggi una singola riga di input contenente una stringa (ad es., hello).

Usa each_char.with_index per scorrere la stringa e stampare ogni carattere insieme alla sua posizione. Ogni riga deve rispettare questo formato: Position 0: h

Dopo aver stampato tutti i caratteri con le rispettive posizioni, stampa su una nuova riga il numero totale di caratteri nella stringa, in questo formato: Total characters: 5

Ad esempio, se l'input è hello, l'output deve essere:

Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5

Se l'input è Ruby, l'output deve essere:

Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4

Se l'input è code, l'output deve essere:

Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4

Se l'input è A, l'output deve essere:

Position 0: A
Total characters: 1

Provalo tu

# Leggi l'input
str = gets.chomp

# TODO: Scrivi il tuo codice qui sotto
# Usa each_char.with_index per scorrere la stringa
# Stampa ogni carattere con la sua posizione nel formato: Position X: char


# Stampa il numero totale di caratteri nel formato: Total characters: X
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 Ruby online