HOWTO · Go

GoLang 逆文字列

このチュートリアルでは、GoLang で文字列を逆にする方法を示します。

このページの内容

このチュートリアルでは、GoLang で文字列を逆にする方法を示します。

GoLang の逆文字列

GoLang では、文字列の反転は簡単な操作です。 指定された文字列の文字を交換するか、空の文字列を作成して、指定された文字列の文字を最後から追加することができます。

方法 1 の手順に従います。

  • まず、文字列を受け取り、結果の文字列を返す関数を定義します。
  • 次に、指定された文字列を反復処理し、その文字を結果の文字列に追加します。
  • 反復が終了したら、結果の文字列を返します。

上記の手順に基づいて例を実装しましょう。

コード例:

package main
import "fmt"

func StringReverse(InputString string) (ResultString string) {
    // iterating and prepending
    for _, c := range InputString {
        ResultString = string(c) + ResultString
    }
    return
}

func main() {
    String1 := "Delftstack"
    fmt.Println("The result for", String1, "is: ", StringReverse(String1))
    String2 := "Delftsatck.com"
    fmt.Println("The result for", String2, "is: ", StringReverse(String2))
    String3 := "www.Delftsatck.com"
    fmt.Println("The result for", String3, "is: ", StringReverse(String3))
}

上記のコードは、指定された文字列の文字を空の文字列の先頭に追加して、文字列を逆にします。

出力:

The result for Delftstack is:  kcatstfleD
The result for Delftsatck.com is:  moc.kctastfleD
The result for www.Delftsatck.com is:  moc.kctastfleD.www

それでは、方法 2 の手順を見てみましょう。

  • まず、文字列を受け取って返す関数を定義します。
  • 指定された文字列をバイト文字列に変換します。
  • バイト文字列を反復処理します。
  • スワップを開始し、バイト文字列の最初の要素を最後の要素とスワップし、2 番目の要素を最後から 2 番目の要素とスワップし、要素がなくなるまで操作を繰り返します。
  • バイト文字列を文字列型に変換します。

上記の方法に基づいた例を試してみましょう。

package main
import "fmt"

func StringReverse(InputString string) string {
    ByteString := []rune(InputString)
    for x, y := 0, len(ByteString)-1; x < y; x, y = x+1, y-1 {
        ByteString[x], ByteString[y] = ByteString[y], ByteString[x]
    }
    return string(ByteString)
}

func main() {
    String1 := "Delftstack"
    fmt.Println("The result for", String1, "is: ", StringReverse(String1))
    String2 := "Delftsatck.com"
    fmt.Println("The result for", String2, "is: ", StringReverse(String2))
    String3 := "www.Delftsatck.com"
    fmt.Println("The result for", String3, "is: ", StringReverse(String3))
}

上記のコードは、文字列をバイト文字列に変換してから逆にします。

出力:

The result for Delftstack is:  kcatstfleD
The result for Delftsatck.com is:  moc.kctastfleD
The result for www.Delftsatck.com is:  moc.kctastfleD.www