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(); }