読者です 読者をやめる 読者になる 読者になる

Go言語で文字列を逆順に並び替える

参考 : How to reverse a string in Go? - Stack Overflow

stringをruneの配列に変換する方法、逆にruneの配列をstringに変換する方法がわかった。

package main

import (
	"fmt"
	"unicode/utf8"
)

func Reverse(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 := "あいうえお"

	// rune配列に変換
	runes := []rune(s)
	fmt.Printf("%#v\n", runes)
	// -> []int32{12354, 12356, 12358, 12360, 12362}

	// rune配列を文字列に変換
	fmt.Printf("%v\n", string(runes))
	// -> あいうえお

	// 文字列を逆順に並び替える
	fmt.Println(Reverse(s))
	// -> おえういあ
}