How to sort by numbers a mixed pair of string and number elements in a vector with Rust

1 Answer

0 votes
fn extract_number(s: &str) -> u32 {
    let pos = s.rfind(' ').unwrap();
    
    s[pos + 1..].parse::<u32>().unwrap()
}

fn main() {
    let mut v = vec![
        "Python 4".to_string(),
        "C 9".to_string(),
        "C++ 5".to_string(),
        "C# 6".to_string(),
        "Java 1".to_string(),
        "PHP 7".to_string(),
        "Go 2".to_string(),
    ];

    v.sort_by_key(|s| extract_number(s));

    println!("{v:?}");
}



/*
run:

["Java 1", "Go 2", "Python 4", "C++ 5", "C# 6", "PHP 7", "C 9"]

*/

 



answered Jan 23 by avibootz

Related questions

...