Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda Membalikkan String dalam Go semasa Mengendalikan Runes untuk Aksara Unicode?

Bagaimanakah anda Membalikkan String dalam Go semasa Mengendalikan Runes untuk Aksara Unicode?

Barbara Streisand
Barbara Streisandasal
2024-10-27 22:59:29146semak imbas

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

Menterbalikkan Rentetan dalam Go: Mengendalikan Runes dan Aksara Unikod

Memanipulasi rentetan dalam Go boleh menimbulkan cabaran apabila bekerja dengan aksara Unicode, yang diwakili sebagai rune. Tidak seperti C, di mana rentetan dianggap sebagai jujukan aksara, Go mengendalikan rentetan sebagai vektor bait. Untuk menangani perkara ini, kita mesti menukar antara bait dan rune untuk melaksanakan operasi peringkat aksara.

Mari kita periksa kod yang anda berikan:

<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>

Isu dalam kod anda timbul daripada strs tugasan [i2] = strs[j], dengan strs[i2] dan strs[j] ialah kedua-dua bait. Walau bagaimanapun, untuk menukar aksara, anda perlu bekerja dengan rune. Untuk menangani perkara ini, anda boleh menukar nilai bait kepada rune menggunakan fungsi 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>

Dengan menukar kepada rune, anda boleh melakukan operasi pertukaran peringkat aksara dengan betul.

Atas ialah kandungan terperinci Bagaimanakah anda Membalikkan String dalam Go semasa Mengendalikan Runes untuk Aksara Unicode?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn