Skip to content

Commit 4e5d3ef

Browse files
author
x-VEspit
committed
Ajout du fichier d'exemple de conversions de chaines
1 parent 0c938ae commit 4e5d3ef

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

src/string_conversion.rs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
// Ne pas faire de warning s'il y a des parenthèses en trop autour des conditions des if
3+
#![allow(unused_parens)]
4+
5+
// Ne pas faire de warning si des fonctions ne sont pas appelées
6+
#![warn(dead_code)]
7+
8+
9+
use std::str;
10+
11+
///////////////////////////////////////////////////////////////////////////////////
12+
// Source: https://gist.github.com/jimmychu0807/9a89355e642afad0d2aeda52e6ad2424 //
13+
///////////////////////////////////////////////////////////////////////////////////
14+
fn string_conversions() {
15+
// -- FROM: vec of chars --
16+
let src1: Vec<char> = vec!['j','{','"','i','m','m','y','"','}'];
17+
// to String
18+
let string1: String = src1.iter().collect::<String>();
19+
// to str
20+
let str1: &str = &src1.iter().collect::<String>();
21+
// to vec of byte
22+
let byte1: Vec<u8> = src1.iter().map(|c| *c as u8).collect::<Vec<_>>();
23+
println!("Vec<char>:{:?} | String:{:?}, str:{:?}, Vec<u8>:{:?}", src1, string1, str1, byte1);
24+
25+
// -- FROM: vec of bytes --
26+
// in rust, this is a slice
27+
// b - byte, r - raw string, br - byte of raw string
28+
let src2: Vec<u8> = br#"e{"ddie"}"#.to_vec();
29+
// to String
30+
// from_utf8 consume the vector of bytes
31+
let string2: String = String::from_utf8(src2.clone()).unwrap();
32+
// to str
33+
let str2: &str = str::from_utf8(&src2).unwrap();
34+
// to vec of chars
35+
let char2: Vec<char> = src2.iter().map(|b| *b as char).collect::<Vec<_>>();
36+
println!("Vec<u8>:{:?} | String:{:?}, str:{:?}, Vec<char>:{:?}", src2, string2, str2, char2);
37+
38+
// -- FROM: String --
39+
let src3: String = String::from(r#"o{"livia"}"#);
40+
let str3: &str = &src3;
41+
let char3: Vec<char> = src3.chars().collect::<Vec<_>>();
42+
let byte3: Vec<u8> = src3.as_bytes().to_vec();
43+
println!("String:{:?} | str:{:?}, Vec<char>:{:?}, Vec<u8>:{:?}", src3, str3, char3, byte3);
44+
45+
// -- FROM: str --
46+
let src4: &str = r#"g{'race'}"#;
47+
let string4 = String::from(src4);
48+
let char4: Vec<char> = src4.chars().collect();
49+
let byte4: Vec<u8> = src4.as_bytes().to_vec();
50+
println!("str:{:?} | String:{:?}, Vec<char>:{:?}, Vec<u8>:{:?}", src4, string4, char4, byte4);
51+
}

0 commit comments

Comments
 (0)