Gibt es eine Methode wie JavaScript substr in Rust?

8

Ich habe mir die Rust Dokumente für String angesehen, aber ich kann nicht finde einen Weg, einen Teilstring zu extrahieren.

Gibt es eine Methode wie JavaScript substr in Rust? Wenn nicht, wie würden Sie es umsetzen?

%Vor%

Der nächstgelegene Wert ist wahrscheinlich slice_unchecked , aber er verwendet Byte-Offsets anstelle von Zeichenindizes und ist mit unsafe gekennzeichnet.

    
laktak 11.05.2016, 09:08
quelle

3 Antworten

11

Für Zeichen können Sie s.chars().skip(pos).take(len) :

verwenden %Vor%

Achten Sie jedoch auf die Definition von Unicode-Zeichen.

Für Bytes können Sie die Slice-Syntax verwenden:

%Vor%     
WiSaGaN 11.05.2016, 09:27
quelle
9

Sie können die Methode as_str für Chars Iterator, um einen &str slice zurück zu bekommen, nachdem Sie auf den Iterator getreten sind . Um also die ersten start -Zeichen zu überspringen, können Sie

aufrufen %Vor%

Wenn Sie nun auch die Länge begrenzen wollen, müssen Sie zuerst die Byte-Position des length -Zeichens herausfinden:

%Vor%

Dies könnte ein kleiner Kreisverkehr sein, aber Rust versteckt nichts vor Ihnen, das CPU-Zyklen in Anspruch nehmen könnte. Das heißt, ich frage mich, warum es noch keine Kiste gibt, die eine substr Methode anbietet.

    
oli_obk - ker 11.05.2016 11:38
quelle
1

Für my_string.substring(start, len) -ähnliche Syntax können Sie ein benutzerdefiniertes Merkmal schreiben:

%Vor%     
user1656730 08.06.2017 16:24
quelle

Tags und Links