Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

pub fn strings() {
    println!("--------------- Testing Strings -------------------");
    let mut my_string = "Hello".to_string();
    assert_eq!(my_string.len(), 5);

    let _ = String::from("Hello");

    //Empty string
    let _empty_string = String::new();

    my_string.push_str(" World");
    assert_eq!(my_string, "Hello World");
    assert!(!my_string.is_empty());
    let my_string_2 = format!("{}-{}", my_string, my_string);
    assert_eq!(my_string_2, "Hello World-Hello World");

    my_string.push('s');
    assert_eq!(my_string, "Hello Worlds");

    let s_unicode = String::from("你好世界");
    for c in s_unicode.chars() {
        println!("{}", c);
    }

    let my_slice = &my_string;
    for d in my_slice.chars() {
        println!("{}", d);
    }
    
    for d in my_string.bytes() {
        println!("{}", d);
    }

    for d in "احمد".char_indices() {
        println!("Index {} : Char {} ", d.0, d.1); // 0, 2, 4, 6
    }
    
    assert!(my_string.contains("Hello"));
    assert!(my_string.starts_with("Hello"));
    assert!(my_string.ends_with("Worlds"));
   
    assert_eq!(my_string.find("Worlds"), Some(6));
    
    my_string = my_string.replace("l", "L");
    assert_eq!(my_string, "HeLLo WorLds");
    my_string = my_string.replacen("L", "l", 1);
    assert_eq!(my_string, "HelLo WorLds");
    
    my_string = my_string.to_lowercase();
    assert_eq!(my_string, "hello worlds");
    my_string = my_string.to_uppercase();
    assert_eq!(my_string, "HELLO WORLDS");

    my_string = format!(" {} ", my_string);
    assert_eq!(my_string.trim_start(), "HELLO WORLDS ");
    assert_eq!(my_string.trim_end(), " HELLO WORLDS");
    assert_eq!(my_string.trim(), "HELLO WORLDS");

    
    assert!(my_string == " HELLO WORLDS ");
    assert!(my_string.eq(" HELLO WORLDS "));
    assert!(my_string.eq_ignore_ascii_case(" hEllo worlds "));
    
    ////////////////////////////////////////////////////////////////
    println!("All Asserstions PASSED");
}

fn main() {
    strings();
}