golang字符串反转
时间: 2024-12-06 14:15:35 浏览: 9
在Go语言中,字符串是不可变的,这意味着你不能直接修改一个字符串的内容。但是你可以通过创建一个新的字符串来达到反转的效果。这里是一个简单的例子:
```go
package main
import "fmt"
func reverseStr(s string) string {
runes := []rune(s)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func main() {
s := "Hello, World!"
reversed := reverseStr(s)
fmt.Println("Original String:", s)
fmt.Println("Reversed String:", reversed)
}
```
在这个`reverseStr`函数中,我们首先将输入的字符串转换成rune切片(可以修改的序列),然后使用两个指针i和j从两端向中间交换字符,最后再将切片转换回字符串。
相关问题
golang反转字符串
在Go语言中,反转字符串是一个常见的操作,可以通过简单的切片(slice)技巧实现。以下是两种常见的方式:
1. 使用`[]byte`切片:
```go
package main
import "fmt"
func reverseString(s string) string {
runes := []rune(s) // 将字符串转换为rune切片
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 { // 交换首尾元素
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes) // 再将切片转换回字符串
}
func main() {
reversed := reverseString("Hello, Golang!")
fmt.Println(reversed)
}
```
2. 使用`strings`包的`Reverse`函数:
```go
package main
import (
"fmt"
"strings"
)
func reverseString(s string) string {
return strings.Reverse(s)
}
func main() {
reversed := reverseString("Hello, Golang!")
fmt.Println(reversed)
}
```
这两种方法都能有效地反转字符串,`strings.Reverse`是内置的、优化过的,效率更高。
编写golang程序实现字符串反转,例如给定字符串 "string",输出结果应该为 "gnirts"
可以通过遍历字符串,将每个字符倒序添加到一个新的字符串中实现字符串反转。以下是一个简单的golang程序实现:
```go
package main
import "fmt"
func reverseString(s string) string {
var reversed string
for i := len(s)-1; i >= 0; i-- {
reversed += string(s[i])
}
return reversed
}
func main() {
input := "string"
output := reverseString(input)
fmt.Println(output) // gnirts
}
```
该程序定义了一个 `reverseString` 函数,该函数接受一个字符串作为输入,并返回反转后的字符串。在 `reverseString` 函数中,我们使用一个 for 循环遍历原始字符串并将其倒序添加到一个新的字符串中。最后,我们从 `main` 函数调用 `reverseString` 函数并打印输出结果。
阅读全文