wiki/dev/lang/rust/String.md

1.2 KiB

String.

Types.

String (owned).

Those are familiar strings.

let text: String = String::from("Text!");
let text: String = "Text!".to_string();

&str (slice).

Those are slices.

let text: &str = "Text!";

let text: String = "Text!".to_string();
let ref:  &str   = &text;

Operations.

Append.

let mut s = String::from("foo");
s.push_str("bar");

Format.

let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");

let s = format!("{s1}-{s2}-{s3}");

Trim.

fn trim_me(input: &str) -> String {
  input.trim().to_string()
}

Replace.

fn replace_me(input: &str) -> String {
  input.replace("cars", "balloons").to_string()
}

Slice.

let s = String::from("Здравствуйте");
let s = &s[0..4]; // Content is "Зд" - first 4 bytes (2 bytes per letter).

Iterate.

// Iterate over UTF character vector.
for c in "Зд".chars() {}

// Iterate over UTF bytes.
for c in "Зд".bytes() {}

// To iterate over UTF letters you need to use an external crate.

Uppercase / Lowercase.

let s = String::from("Hi there!");
let uppercase = s.to_uppercase();
let lowercase = s.to_lowercase();