Go 中的字串是位元組向量而不是字元序列。當嘗試反轉語言中的字串時,這種差異帶來了挑戰。以下程式碼片段示範了 Go 中反轉字串的基本方法:
<code class="go">import ( "fmt" "rand" "time" ) func invert() { var c = "A" var strs, aux string rand.Seed(time.Now().UnixNano()) // 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) 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>
但是,處理組合字元(旨在修改其他字元的 unicode 字元)會為反轉過程帶來複雜性。為了解決這個問題,請考慮Andrew Sellers 提出的方法,其中涉及:
這種方法保留了CDM 字元的正確順序,並確保包含表情符號的複雜字串的準確反轉以及其他組合元素。
以上是如何在保留變音符號組合順序的同時反轉 Go 中的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!