# Golang implements several solutions for reverse ordering of strings

• 2020-06-07 04:39:05
• OfStack

preface

This article mainly introduces the Golang implementation of string reverse order related content, Shared for your reference and learning, the following words are not enough, let's start with a detailed introduction:

The string is inverted as follows:

Hello World -- > dlroW olleH

Solution 1:

``````
length := len(str)
array := make([]string , length)
for i , v := range str{
array[i] = string(v)
}
for i := 0 ; i < length/2 ; i++ {
array[i], array[length -i - 1] = array[length - i -1 ], array[i]
}
str = ""
for _ , v := range array {
str += v
}``````

The general idea is:

str - Loop - > array - Cycle - > Invert -- cycle -- > str

You can switch to Chinese.

Question:

It looks tedious, and using a 3-layer cycle is definitely not efficient.

Solution 2

``````
bytes := []rune(str)
for from , to := 0 , len(bytes) -1 ; from < to ; from , to = from + 1, to -1{
bytes[from] , bytes[to] = bytes[to] , bytes[from]
}
str = string(bytes)
return str``````

Using a 1-layer loop, invert and convert []byte to string directly using the built-in string function of go

General idea:

string -- Directly use the array building method, pass in str, get array -- > []byte --for cycle -- > Invert - the built-in string function > string

Question:

Cannot convert byte type

Solution 3:

``````
bytes := []rune(str)
for from , to := 0 , len(bytes) -1 ; from < to ; from , to = from + 1, to -1{
bytes[from] , bytes[to] = bytes[to] , bytes[from]
}
str = string(bytes)
return str ``````

Solution 2: Unable to convert Chinese characters:

conclusion

Reference:

string rune byte relationship

Related articles: