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

Barbara Streisand
Lepaskan: 2024-10-27 22:59:29
asal
146 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!