首頁 > 後端開發 > Golang > 主體

在處理 Unicode 字元的符文時,如何反轉 Go 中的字串?

Barbara Streisand
發布: 2024-10-27 22:59:29
原創
146 人瀏覽過

How do you Reverse a String in Go while Handling Runes for Unicode Characters?

在Go 中反轉字串:處理符文和Unicode 字元

在Go 中操作字串可能會在處理Unicode 字元時帶來挑戰,這些字元表示為作為符文。與 C 中字串被視為字元序列不同,Go 將字串視為位元組向量。為了解決這個問題,我們必須在位元組和符文之間進行轉換以執行字元級操作。

讓我們檢查一下您提供的程式碼:

<code class="go">func inverte() {
    var strs, aux string

    // Generate 5 strings with random characters of sizes 100, 200, 300, 400, and 500
    for i := 1; i < 6; i++ {
        strs = randomString(i * 100)
        fmt.Print(strs)

        // Attempt to reverse the characters
        for i2, j := 0, len(strs); i2 < j; i2, j = i+1, j-1 {
           aux = strs[i2]
           strs[i2] = strs[j]
           strs[j] = aux
       }
   }
}</code>
登入後複製

程式碼中的問題是由賦值strs 引起的[i2] = strs[j],其中strs[i2] 和strs [j] 都是位元組。然而,要交換角色,您需要使用符文。為了解決這個問題,您可以使用 rune 函數將位元組值轉換為符文:

<code class="go">for i2, j := 0, len(strs); i2 < j; i2, j = i+1, j-1 {
    r1 := rune(strs[i2])
    r2 := rune(strs[j])
    strs[i2] = byte(r2)
    strs[j] = byte(r1)
}</code>
登入後複製

透過轉換為符文,您可以正確執行字元級交換操作。

以上是在處理 Unicode 字元的符文時,如何反轉 Go 中的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!