Kann jemand eine Zeichenfolge in Golang nach Länge aufteilen?
Zum Beispiel um "helloworld" nach jeweils 3 Zeichen zu teilen, sollte es idealerweise ein Array von "hel" "low" "orl" "d" zurückgeben?
Alternativ wäre es auch möglich, nach jeweils 3 Zeichen einen Zeilenumbruch anzuhängen.
Alle Ideen werden sehr geschätzt!
Achten Sie darauf, in Ihr string in ein Stück Rune: Siehe " Zeichenfolge in Buchstaben aufteilen "
%Vor% a[n:n+3]
funktioniert am besten, wenn du ein Stück Rune bist.
Der Index wird in jeder Rune um eins erhöht, während er in einem Slice der Zeichenkette : "世界": i
wäre 0 und 3: Ein Zeichen (Rune) kann aus mehreren Bytes bestehen.
Betrachten wir zum Beispiel s := "世a界世bcd界efg世"
: 12 Runen. (Siehe play.golang.org )
Wenn Sie versuchen, es byteweise zu parsen, werden Sie (in einer naiven Aufteilung alle 3 Zeichen Implementierung) einige der "Index modulo 3" (entspricht 2, 5, 8 und 11) verpassen, weil der Index wird Erhöhen Sie diese Werte:
%Vor%Die Ausgabe:
%Vor% Aber wenn du Runen ( a := []rune(s)
) iterieren würdest, würdest du das bekommen, was du erwartest, da der Index eine Rune auf einmal erhöht, was es einfach macht, genau 3 Zeichen zu sammeln:
Ausgabe:
%Vor%Benötigt auch eine Funktion, um dies kürzlich zu tun, siehe Beispielverwendung hier
%Vor%Tags und Links string split go string-length