如何在 Golang 中檢查字串在 Unicode 大小寫摺疊下的相等性?


在 Golang 中,檢查字串相等性是開發人員在構建應用程式時經常遇到的常見任務。但是,當處理包含 Unicode 中不同大小寫表示形式的字元的字串時,它可能會變得有點複雜。Unicode 大小寫摺疊是將字元轉換為通用大小寫表示形式以簡化不區分大小寫的比較的過程。在本文中,我們將探討如何在 Golang 中檢查 Unicode 大小寫摺疊下的字串相等性。

什麼是 Unicode 大小寫摺疊?

Unicode 大小寫摺疊是一個將字元轉換為通用大小寫表示形式以簡化不區分大小寫比較的過程。在 Unicode 中,某些字元具有多個大小寫表示形式,例如大寫、小寫和標題大小寫。大小寫摺疊將所有這些大小寫表示形式轉換為單個大小寫表示形式,通常是小寫。

在 Unicode 大小寫摺疊下檢查字串相等性

在 Golang 中,可以使用 strings.EqualFold() 函式在 Unicode 大小寫摺疊下檢查字串相等性。此函式將兩個字串作為引數,如果它們在 Unicode 大小寫摺疊下相等,則返回 true,否則返回 false。

示例

package main

import (
   "fmt"
   "strings"
)

func main() {
   str1 := "Straße"
   str2 := "strasse"

   if strings.EqualFold(str1, str2) {
      fmt.Println("The strings are equal under Unicode case folding.")
   } else {
      fmt.Println("The strings are not equal under Unicode case folding.")
   }
}

輸出

The strings are not equal under Unicode case folding.

在上面的示例中,我們使用了 strings.EqualFold() 函式來檢查字串 str1 和 str2 在 Unicode 大小寫摺疊下是否相等。由於這兩個字串包含相同的字元但大小寫表示形式不同,因此該函式返回 true。

如果要執行兩個字串之間的不區分大小寫比較,也可以使用 strings.ToLower() 函式將兩個字串都轉換為小寫,然後再進行比較 -

示例

package main

import "fmt"
import "strings"

func main() {
   str1 := "Hello, world!"
   str2 := "hello, WORLD!"
    
   if strings.ToLower(str1) == strings.ToLower(str2) {
      fmt.Println("The strings are equal (case-insensitive)")
   } else {
      fmt.Println("The strings are not equal (case-insensitive)")
   }
}

輸出

The strings are equal (case-insensitive)

在此示例中,我們使用 strings.ToLower() 函式將兩個字串都轉換為小寫,然後使用 == 運算子進行比較。這會產生與使用 strings.EqualFold() 相同的結果,但沒有 Unicode 大小寫摺疊的開銷。

結論

在處理包含 Unicode 中不同大小寫表示形式的字元的字串時,在 Unicode 大小寫摺疊下檢查字串相等性是一項常見任務。在 Golang 中,可以使用 strings.EqualFold() 函式在 Unicode 大小寫摺疊下檢查字串相等性。當您需要比較字串而不考慮字串中字元的大小寫時,此函式很有用。

更新於: 2023年4月20日

253 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.