-
-
Save ttys3/21c3b879f16e0c3a7da5c6f904d0cf00 to your computer and use it in GitHub Desktop.
Conversion between String, str, Vec<u8>, Vec<char> in Rust
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::str; | |
fn main() { | |
// -- FROM: vec of chars -- | |
let src1: Vec<char> = vec!['j','{','"','i','m','m','y','"','}']; | |
// to String | |
let string1: String = src1.iter().collect::<String>(); | |
// to str | |
let str1: &str = &src1.iter().collect::<String>(); | |
// to vec of byte | |
let byte1: Vec<u8> = src1.iter().map(|c| *c as u8).collect::<Vec<_>>(); | |
println!("Vec<char>:{:?} | String:{:?}, str:{:?}, Vec<u8>:{:?}", src1, string1, str1, byte1); | |
// -- FROM: vec of bytes -- | |
// in rust, this is a slice | |
// b - byte, r - raw string, br - byte of raw string | |
let src2: Vec<u8> = br#"e{"ddie"}"#.to_vec(); | |
// to String | |
// from_utf8 consume the vector of bytes | |
let string2: String = String::from_utf8(src2.clone()).unwrap(); | |
// to str | |
let str2: &str = str::from_utf8(&src2).unwrap(); | |
// to vec of chars | |
let char2: Vec<char> = src2.iter().map(|b| *b as char).collect::<Vec<_>>(); | |
println!("Vec<u8>:{:?} | String:{:?}, str:{:?}, Vec<char>:{:?}", src2, string2, str2, char2); | |
// -- FROM: String -- | |
let src3: String = String::from(r#"o{"livia"}"#); | |
let str3: &str = &src3; | |
let char3: Vec<char> = src3.chars().collect::<Vec<_>>(); | |
let byte3: Vec<u8> = src3.as_bytes().to_vec(); | |
println!("String:{:?} | str:{:?}, Vec<char>:{:?}, Vec<u8>:{:?}", src3, str3, char3, byte3); | |
// -- FROM: str -- | |
let src4: &str = r#"g{'race'}"#; | |
let string4 = String::from(src4); | |
let char4: Vec<char> = src4.chars().collect(); | |
let byte4: Vec<u8> = src4.as_bytes().to_vec(); | |
println!("str:{:?} | String:{:?}, Vec<char>:{:?}, Vec<u8>:{:?}", src4, string4, char4, byte4); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment