Как проверить строку на равенство при сворачивании регистра Unicode в Golang?

Опубликовано: 20 Февраля, 2022

В языке Go строки отличаются от других языков, таких как Java, C ++, Python и т. Д. Это последовательность символов переменной ширины, в которой каждый символ представлен одним или несколькими байтами с использованием кодировки UTF-8.
В строках Go вы можете сравнивать две строки друг с другом без каких-либо ошибок, даже если они написаны в разных регистрах (нижний и верхний регистры) с помощью функции EqualFold () . Или, в другом случае, эта функция используется для проверки того, интерпретируются ли указанные строки как строки UTF-8 и равны ли они при свертывании регистра Unicode. Эта функция возвращает истину, если заданные строки равны при свертывании регистра Unicode, или возвращает false, если данные строки не равны при сворачивании регистра Unicode. Он определен в пакете strings, поэтому вам необходимо импортировать пакет strings в свою программу для доступа к функции EqualFold.

Синтаксис:

 func EqualFold (str1, str2 строка) bool

Тип возвращаемого значения этой функции - тип bool. Обсудим эту концепцию на примерах:

Example 1:

// Go program to illustrate how to
// check the given strings are equal or not
package main
  
import (
    "fmt"
    "strings"
)
  
// Main function
func main() {
  
    // Creating strings
    // Using var keyword
    var username string
    var uinput string
  
    // Initializing strings
    username = "AnkitaSaini"
    uinput = "ankitasaINI"
  
    // Checking whether the given
    // strings are equal or not
    // Using EqualFold() function
    res := strings.EqualFold(username, uinput)
  
    // Displaying the result according
    // to the given condition
    if res == true {
  
        fmt.Println("!..Successfully Matched..!")
    } else {
  
        fmt.Println("!..Not Matched..!")
    }
  
}

Выход:

 ! .. Сопоставлено успешно ..!

Example 2:

// Go program to illustrate how to check
// the given strings are equal or not
package main
  
import (
    "fmt"
    "strings"
)
  
// Main function
func main() {
  
    // Creating and initializing strings
    // Using shorthand declaration
    s1 := "I am working as a Technical content writer, in GeeksforGeeks!"
    s2 := "I am currently writing articles on Go language!"
  
    // Checking the given strings are equal or not
    // Using EqualFold() function
    res1 := strings.EqualFold(s1, "I AM WORKING AS A TECHNICAL CONTENT WRITER, IN GEEKSFORGEEKS!")
    res2 := strings.EqualFold(s1, "I AM working AS A Technical CONTENT writer, IN GeeksforGeeks!")
    res3 := strings.EqualFold(s1, "Apple")
    res4 := strings.EqualFold(s2, "I am currently writing articles on Go language!")
    res5 := strings.EqualFold(s2, "I am currently writing ARTICLES on Go language!")
    res6 := strings.EqualFold("GeeksforGeeks", "geeksForgeeks")
  
    // Displaying results
    fmt.Println("Result 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
    fmt.Println("Result 4: ", res4)
    fmt.Println("Result 5: ", res5)
    fmt.Println("Result 6: ", res6)
  
}

Выход:

Результат 1: верно
Результат 2: верно
Результат 3: ложь
Результат 4: верно
Результат 5: верно
Результат 6: верно