mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-21 19:16:23 +00:00
2.5 KiB
2.5 KiB
date | id | title |
---|---|---|
2020-09-15 | 490f0710-971d-4150-a339-4a8c2f5d19a8 | Rust Strings |
Description
The String
type, which is provided by Rust’s standard library rather
than coded into the core language, is a growable, mutable, owned, UTF-8
encoded string type. When Rustaceans refer to “strings” in Rust, they
usually mean the String
and the string slice &str
types, not just
one of those types. Although this section is largely about String
,
both types are used heavily in Rust’s standard library, and both
String
and string slices are UTF-8 encoded.
Creating a New String
Many Vector operations are also available for Strings.
fn main() {
let mut s = String::new();
}
tostring
To generate a String
with initial data we can use the
tostring
method:
fn main() {
let data = "initial contents";
let s = data.to_string();
// the method also works on a literal directly:
let s = "initial contents".to_string();
}
String::from
The same can be accomplished with String::from
:
fn main() {
let s = String::from("initial contents");
}
Updating a String
pushstr
fn main() {
let mut s = String::from("foo");
s.push_str("bar");
println!("s is {}", s)
}
push
push
adds a single character to a string:
fn main() {
let mut s = String::from("lo");
s.push('l');
println!("s is {}", s)
}
Concatentation
fn main() {
let s1 = String::from("Hello, ");
let s2 = String::from("world!");
let s3 = s1 + &s2; // note s1 has been moved here and can no longer be used
println!("s3 is {}", s3)
}
Concatenate multiple strings
With +
fn main() {
let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");
let s = s1 + "-" + &s2 + "-" + &s3;
println!("s is {}", s)
}
With format!
fn main() {
let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");
let s = format!("{}-{}-{}", s1, s2, s3);
println!("s is {}", s)
}
Iteration
Chars
#![allow(unused)]
fn main() {
for c in "नमस्ते".chars() {
println!("{}", c);
}
}
Bytes
#![allow(unused)]
fn main() {
for b in "नमस्ते".bytes() {
println!("{}", b);
}
}