String::repeat în Rust

String Rust 1.16

Creează un String nou în care textul este repetat de n ori.

Sintaxă
pub fn repeat(&self, n: usize) -> String   // metodă a lui str

Ce face String::repeat

repeat(n) lipește textul de n ori și returnează un String nou. Este definită pe str, deci se apelează la fel pe un literal ("-".repeat(20)) și pe un String. Cu n = 0 rezultatul este gol.

Este practică pentru linii de separare, indentare sau bare simple în terminal. Dacă rezultatul ar depăși memoria adresabilă, programul se oprește cu panică.

Parametri

Parametru Descriere
n De câte ori se repetă textul.

Ce returnează

Un String nou.

Exemple

Exemplul 1: Linii de separare

fn main() {
    let titlu = "Raport vânzări";
    let linie = "=".repeat(titlu.chars().count());
    println!("{linie}\n{titlu}\n{linie}");
    println!("[{}]", "ab".repeat(0));
}

Rezultat

==============
Raport vânzări
==============
[]

Exemplul 2: Grafic de bare din note

fn main() {
    let note = [("Ana", 10), ("Radu", 7), ("Ioana", 9)];
    for (nume, nota) in note {
        println!("{nume:<6} {} {nota}", "█".repeat(nota));
    }
}

Rezultat

Ana    ██████████ 10
Radu   ███████ 7
Ioana  █████████ 9

Greșeli frecvente

  • Calculezi lungimea liniei cu len() pe un titlu cu diacritice și linia iese prea lungă. Folosește chars().count().

Comenzi înrudite

  • String::push_str: Adaugă la finalul unui String un text (push_str) sau un singur caracter (push).
  • String::new: Creează un String gol, fără să aloce memorie; textul se adaugă apoi cu push_str sau push.
  • String::len: Lungimea textului în OCTEȚI (nu în litere) și verificarea dacă textul e gol. Pentru litere: chars().count().