Golang 通过忽略大小写比较两个字符串

Golang 通过忽略大小写比较两个字符串

在Go编程语言中,字符串是一种内置的数据类型,用于表示字符序列。它们使用双引号(”)进行定义,并且可以包含任何有效的Unicode字符。在本文中,我们将编写一个Go语言程序,通过忽略字符串的大小写来比较两个字符串。在这里,我们将使用for循环和Go语言中定义的内置库函数来实现结果。

语法

func ToLower(r rune) rune

ToLower() 函数是Unicode包中的一个函数,用于将给定的字符串转换为小写。它以rune字符作为参数,并通过将给定的rune转换为小写,返回一个小写rune。本文中的两种方法都将使用此函数。

方法1:使用内部函数

在此方法中,我们将学习如何创建一个用户定义的函数,该函数将帮助比较两个字符串,不考虑它们的大小写。

步骤

  • 步骤1 :首先,我们需要导入fmt和strings包。

  • 步骤2 :然后,开始main()函数。在main()函数中初始化两个字符串类型的变量,并将值存储到它们中。

  • 步骤3 :使用fmt.Println()函数将两个字符串都打印在屏幕上。如果两个字符串的长度不同,则打印字符串长度不同,并停止程序的进一步执行。

  • 步骤4 :然后,使用for循环遍历第一个字符串,并使用ToLower()函数将字符串的每个字符都转换为小写。同时,使用if条件来比较每个字符。

  • 步骤5 :如果字符串的任何字符不相同,则打印字符串不相等,并停止程序的进一步执行。

  • 步骤6 :如果for循环完成,则意味着两个字符串在区分大小写方面是相等的。因此,打印两个字符串相等,忽略大小写。

示例

在这个示例中,我们将编写一个Go语言程序,使用for循环来比较两个字符串,忽略它们的大小写。

package main
import (
   "fmt"
   "strings"
)

func main() {
   var str1 string = "Hello World"
   var str2 string = "HELLO WORLD"
   fmt.Println("The first string is:\n", str1)
   fmt.Println("The second string is:\n", str2)
   fmt.Println()
   if len(str1) != len(str2) {
      fmt.Println("The strings have different length.")
      return
   }

   for i := 0; i < len(str1); i++ {
      if strings.ToLower(string(str1[i])) != strings.ToLower(string(str2[i])) {
         fmt.Println("The strings are not equal.")
         return
      }
   }

   fmt.Println("The two given strings are equal, ignoring case.")
}

输出

The first string is:
 Hello World
The second string is:
 HELLO WORLD

The two given strings are equal, ignoring case.

方法2:使用Golang的内部函数

在这种方法中,我们将学习Golang的两个内部函数- Compare()和contains()。这两种语法如下所述-

语法

func Compare(a, b string) int

compare()函数位于strings包中,用于比较两个字符串的值。该函数将两个字符串作为参数并根据第一个字符串是大于、小于还是等于第二个字符串来返回一个整数值。

func Contains(str, substr string) bool

contain() 函数存在于字符串包中,用于检查给定的子字符串是否存在于字符串中。该函数接受两个字符串作为参数,并根据子字符串是否被找到返回一个布尔值。如果函数返回的值为真,则表示找到了子字符串,反之则没有找到。

func HasPrefix(str, prefix string) bool

HasPrefix() 函数存在于strings包中,用于检查一个子串是否是给定字符串的一部分。该函数接受两个参数,一个是要检查的字符串,另一个是子串,函数根据字符串是否以特定子串开头返回一个布尔变量。

步骤

  • 步骤 1 - 首先,我们需要导入fmt和strings包。

  • 步骤 2 - 然后,开始main()函数。在main()函数内部,初始化两个字符串类型的变量并对其进行赋值。然后,在屏幕上打印出这两个字符串。

  • 步骤 3 - 现在,使用ToLower()函数将两个字符串都转换为小写,并使用strings包中的Compare()函数进行比较。

  • 步骤 4 - 如果函数返回的值为零,那么意味着两个字符串相等,将其打印出来。

  • 步骤 5 - 否则,打印字符串不相等的结果。

示例1

在这个示例中,我们将编写一个Go语言程序,使用compare()函数忽略大小写来比较两个字符串。

package main
import (
   "fmt"
   "strings"
)

func main() {
   var str1 string = "Hello World"
   var str2 string = "HELLO WORLD"
   fmt.Println("The first string is:\n", str1)
   fmt.Println("The second string is:\n", str2)
   fmt.Println()

   if strings.Compare(strings.ToLower(str1), strings.ToLower(str2)) == 0 {
      fmt.Println("The strings are equal, ignoring case.")
   } else {
      fmt.Println("The strings are not equal.")
   }
}

输出

The first string is:
 Hello World
The second string is:
 HELLO WORLD

The strings are equal, ignoring case.

示例2

在这个示例中,我们将使用contains()函数编写一个Go语言程序来比较两个字符串。

package main
import (
   "fmt"
   "strings"
)

func main() {
   var str1 string = "Hello World"
   var str2 string = "hI"
   fmt.Println("The first string is:\n", str1)
   fmt.Println("The second string is:\n", str2)
   fmt.Println()

   if strings.Contains(strings.ToLower(str1), strings.ToLower(str2)) {
      fmt.Println("The first string contains the second string, ignoring case.")
   } else {
      fmt.Println("The first string does not contain the second string.")
   }
}

输出

The first string is:
 Hello World
The second string is:
 hI

The first string does not contain the second string.

示例3

在这个示例中,我们将编写一个Go语言程序,使用HasPrefix()函数来比较两个字符串。

package main
import (
   "fmt"
   "strings"
)

func main() {
   var str1 string = "Hello World"
   var str2 string = "hELLo"
   fmt.Println("The first string is:\n", str1)
   fmt.Println("The second string is:\n", str2)
   fmt.Println()

   if strings.HasPrefix(strings.ToLower(str1), strings.ToLower(str2)) {
      fmt.Println("The first string starts with the second string, ignoring case.")
   } else {
      fmt.Println("The first string does not start with the second string.")
   }
}

输出

The first string is:
 Hello World
The second string is:
 hELLo

The first string starts with the second string, ignoring case.

结论

我们成功地编写并执行了一个Golang程序,通过示例帮助比较两个字符串时忽略大小写。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程