Eliminazione di caratteri che corrispondono a un pattern

Rust:
Eliminazione di caratteri che corrispondono a un pattern

Come fare:

fn rimuovi_caratteri<S: AsRef<str>>(testo: S, pattern: S) -> String {
    testo.as_ref().chars().filter(|c| !pattern.as_ref().contains(*c)).collect()
}

fn main() {
    let frase = "Ciao, Rustacei! È ora di codare.";
    let caratteri_da_rimuovere = ",!.";
    let frase_pulita = rimuovi_caratteri(&frase, &caratteri_da_rimuovere);

    println!("Frase originale: {}", frase);
    println!("Frase pulita: {}", frase_pulita);
}

// Output
// Frase originale: Ciao, Rustacei! È ora di codare.
// Frase pulita: Ciao Rustacei È ora di codare

Un esempio semplice per editar stringhe elimina i caratteri non desiderati.

Approfondimento

Prima che il linguaggio Rust risultasse stabile, le operazioni sulle stringhe potevano essere più complicate. La comunità ha lavorato duro per sviluppare metodi ergonomici e performanti come filter e collect.

Alternativamente, esiste la crate regex che offre funzionalità potenti per manipolazione basata su espressioni regolari. Tuttavia, è più pesante e indirizzata a casi più complessi.

Il dettaglio d’implementazione chiave qui è l’utilizzo di iterators e closure per fornire un metodo funzionale, efficiente ed espressivo per lavorare con stringhe.

Vedi anche