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
endQuesto 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}"
endQuesto produce:
0: H
1: iUn 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, cQuesti metodi sono utili quando devi analizzare il testo, contare caratteri specifici o trasformare le stringhe carattere per carattere.
Sfida
FacileLeggi 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: 5Se l'input è Ruby, l'output deve essere:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4Se l'input è code, l'output deve essere:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4Se l'input è A, l'output deve essere:
Position 0: A
Total characters: 1Provalo 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: XQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 47Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dall'utente10FizzBuzz con un colpo di scena
Panoramica del giocoIl metodo FizzBuzz2Variabili e tipi di dato
Numeri e variabiliTipo di dato stringaTipo di dato booleanoTipo di dato SymbolVerifica dei tipi di datoConvenzioni di denominazioneRiepilogo - Creazione di variabili5Strutture decisionali
Istruzione ifIf-ElseRipasso - Calcolatrice sempliceIf-Else annidatoIstruzione unless8Cicli
Ciclo for con intervalliCiclo whilebreaknextRiepilogo - FattorialeCiclo timesCiclo untilCicli annidatiRiepilogo - Input dinamico3Operatori, parte 1
Operatori aritmeticiOperatore moduloScorciatoie aritmeticheRipasso: matematica sempliceOperatori di confronto6Input/Output di base
Output con putsOutput con print e pOutput con variabiliInput con getsMetodo chompConversione di tipoRipasso - Calcolatore dell'etàRipasso - Vero o falsoEsercitati da solo: Compilatore Ruby online