Golang Reverse String

Golang Reverse String
W Go ciąg jest sekwencją bajtów UTF-8. Zgodnie ze standardem kodowania UTF-8 znaki ASCII są jednobitowe. Jednak inne znaki wahają się od 1 do 4 bajtów. Z powodu tej niespójności prawie niemożliwe jest indeksowanie określonego znaku wewnątrz ciągu.

Jeśli chcemy indeksować znak w Go, możemy przekonwertować ciąg na tablicę lub runę. Runa jest w zasadzie punktem Unicode. Punkt Unicode odnosi się do wartości numerycznej reprezentującej znak Unicode.

Ten krótki artykuł dowie się, jak odwrócić ciąg w Go, najpierw przekształcając go w szereg run.

Odwrotny ciąg - Rune by Rune

Rozważ przykładowy program poniżej:

Pakiet Main
import (
„FMT”
)
func main ()
str: = "Hello"
rune_arr: = [] rune (str)
var rev [] rune
dla i: = len (rune_arr) - 1; i> = 0; I--
rev = append (rev, rune_arr [i])

fmt.Println („rewerse:”, string (rev))

W powyższym przykładzie zaczynamy od przekształcenia ciągu „Str” na tablicę runy. To pozwala nam indeksować poszczególne znaki w ciągu.

Po uzyskaniu indeksu poszczególnych znaków dołączamy każdy znak do nowego ciągu, zaczynając od końca do rozpoczęcia.

Powstałe wyjście to ciąg w odwrotnej kolejności, ponieważ:

Odwrotność: Olleh

Odwrotny ciąg - bajt

Jak wspomniano, ciąg jest sekwencją bajtów. Stąd możemy utworzyć odwrotność łańcucha, odwracając każdy bajt na raz.

Weź poniższy przykład:

Func Reverse (S String) String
VAR BYTE STRINGS.Budowniczy
bajt.Grow (len (s))
dla i: = len (s) - 1; i> = 0; I--
bajt.PITEBYTE (S [i])

bajt powrotny.Strunowy()

Powyższy przykład konwertuje ciąg, cofając go bajtem.

Wniosek

Ten artykuł pokazuje, jak odwrócić ciąg w języku programowania Go.

Ćwicz dalej!