wiki/dev/lang/rust/String.md

86 lines
1.2 KiB
Markdown

# String.
# Types.
## String (owned).
Those are familiar strings.
```rust
let text: String = String::from("Text!");
let text: String = "Text!".to_string();
```
## &str (slice).
Those are slices.
```rust
let text: &str = "Text!";
let text: String = "Text!".to_string();
let ref: &str = &text;
```
# Operations.
## Append.
```rust
let mut s = String::from("foo");
s.push_str("bar");
```
## Format.
```rust
let s1 = String::from("tic");
let s2 = String::from("tac");
let s3 = String::from("toe");
let s = format!("{s1}-{s2}-{s3}");
```
## Trim.
```rust
fn trim_me(input: &str) -> String {
input.trim().to_string()
}
```
## Replace.
```rust
fn replace_me(input: &str) -> String {
input.replace("cars", "balloons").to_string()
}
```
## Slice.
```rust
let s = String::from("Здравствуйте");
let s = &s[0..4]; // Content is "Зд" - first 4 bytes (2 bytes per letter).
```
## Iterate.
```rust
// 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.
```rust
let s = String::from("Hi there!");
let uppercase = s.to_uppercase();
let lowercase = s.to_lowercase();
```