Hitta längden på en sträng

Rust:
Hitta längden på en sträng

Så här gör du:

fn main() {
    let text = "Hej, världen!";
    let length = text.len(); // Ta reda på längden
    println!("Längden på strängen är: {}", length);
}

Sample output:

Längden på strängen är: 13

Notera att len() räknar bytes och inte tecken, viktigt för text med åäö.

Fördjupning

Från början hade Rust olika metoder för att hantera stränglängder, men med tiden har standarden blivit .len() funktionen. Kom ihåg att .len() ger oss antalet bytes i strängen, inte antalet “char” eller tecken. För strängar med enbart ASCII-tecken är detta samma sak, men för Unicode-strängar, kan det vara annorlunda då vissa tecken kan ta flera bytes att representera. Om du behöver antalet karaktärer eller grafemkluster, kan du istället använda .chars().count() eller .graphemes(true).count() med hjälp av unicode-segmentation biblioteket.

Alternativ till .len() innefattar iteration över strängen eller att använda externa bibliotek som kan ge mer riktade funktioner för specifika problem.

När det gäller implementeringsdetaljer, lagras utf-8 kodade Rust strängar som en samling bytes, så .len() är en snabb operation eftersom längden är datat strukturens storlek, inte resultatet av någon beräkning.

Se även