Teil 11: Strings und Text
Lernziel: Zeichenketten bearbeiten.
Voraussetzungen: Die vorherigen Lektionen, insbesondere Teil 10.
Worum geht es?
Rust unterscheidet &str als geliehene Textansicht und String als besitzende, veränderbare Zeichenkette.
Schritt für Schritt
fn main() {
let material: &str = "PLA";
let mut meldung = String::from("Material: ");
meldung.push_str(material);
meldung.push('!');
println!("{meldung}");
println!("Länge in Bytes: {}", meldung.len());
}
Mit format! erzeugst du Strings, anstatt direkt zu drucken:
let name = "Pico";
let text = format!("Gerät: {name}");
Unicode-Falle
String::len() zählt Bytes, nicht sichtbare Zeichen. Bei Umlauten oder Emojis stimmen beide Zahlen oft nicht überein. Für Unicode-Skalarelemente kannst du text.chars().count() verwenden; zusammengesetzte sichtbare Zeichen sind nochmals komplexer.
In Rust kannst du Strings nicht einfach über einen ganzzahligen Index wie text[0] lesen.
Selbst ausprobieren
Baue aus einem Gerätenamen und einer Seriennummer einen formatierten Beschreibungstext und gib die Zeichenanzahl aus.
Musterlösung anzeigen
fn main() {
let geraet = "Drucker";
let nummer = 17;
let text = format!("{geraet} #{nummer}");
println!("{text} ({} Zeichen)", text.chars().count());
}
Das solltest du mitnehmen
- Zeichenketten bearbeiten.
- Nutze
cargo runfür das Ausführen undcargo checkfür eine schnelle Fehlerprüfung (ab Teil 4). - Experimentiere mit veränderten Werten und beobachte die Compilermeldungen.
