A functional way of doing this?

Constant indexing on UTF-8 string is dangerous - it may panic on non-ascii character. Consider some popular case conversion crate instead, like heck.

use heck::CamelCase; // `heck` calls it CamelCase - check its docs.

fn main() {
    let b = vec![
        "very.juicy.parenchyma".to_string(),
        "can.coagulate.rapidly".into(),
        "blocking.the.stromata".into(),
        "외국어.문자열".into(),
    ];

    for el in &b {
        let el: String = el.split('.')
             .map(str::to_camel_case)
             .collect();
        println!("{}", el);
    }
}
6 Likes