Go语言程序比较两个字符串


在Go编程语言中,字符串是一种可用于各种应用程序的数据类型。它是由字符组成的集合,并且是不可变的。在Go编程语言中,字符串一旦创建就不能修改。在本文中,我们将学习比较两个给定字符串的不同技术。

语法

bytes.Equal(s1,s2)

使用Equal()方法比较两个字节切片([]byte)是否相等。如果两个字节切片相等,则会产生一个反映该事实的布尔结果(true或false)。

strings.Compare(s1,s2)

Compare()函数用于按字典顺序比较两个字符串。它返回一个整数,表示比较结果:

如果两个字符串相同,则值为0。

如果第一个字符串按字典顺序小于第二个字符串,则值为小于0。

如果第一个字符串按字典顺序大于第二个字符串,则值为大于0。

算法

  • 步骤1 - 创建一个名为main的包并声明fmt(格式化包)

  • 步骤2 - 在main函数中,创建两个变量

  • 步骤3 - 将您想要比较的两个字符串赋值给它们。

  • 步骤4 - 使用内部函数或用户定义函数比较两个字符串

  • 步骤5 - 打印输出。

示例1

在这个例子中,我们将看到如何在Golang中使用if-else语句比较两个字符串。

package main
import (
   "fmt"
)
func main() {
   mystr1 := "create" //create str1
   fmt.Println("The string1 created here is:", mystr1)
   mystr2 := "craete" //create str2
   fmt.Println("The string2 created here is:", mystr2)
   fmt.Println("Are the strings equal?")
   if mystr1 == mystr2 {
      fmt.Println("The strings are equal.") //print strings are equal
   } else {
      fmt.Println("The strings are not equal.") //print strings are not equal
   }
}

输出

The string1 created here is: create
The string2 created here is: craete
Are the strings equal?
The strings are not equal.

示例2

在这个例子中,我们将使用bytes.Equal()函数来比较两个字符串

package main
import (
   "bytes"
   "fmt"
)
func main() {
   mystr1 := "create" //create string1
   fmt.Println("The string1 created here is:", mystr1)
   mystr2 := "craete" //create string2
   fmt.Println("The string2 created here is:", mystr2)
   fmt.Println("Are the strings equal?")
   if bytes.Equal([]byte(mystr1), []byte(mystr2)) { //use bytes.Equal() function to compare slices
      fmt.Println("The strings are equal.") //print strings are not equal
   } else {
      fmt.Println("The strings are not equal.") //print strings are equal
   }
}

输出

The string1 created here is: create
The string2 created here is: craete
Are the strings equal?
The strings are not equal.

示例3

在这个例子中,我们将使用strings.compare()函数来比较两个切片。

package main
import (
   "fmt"
   "strings"
)
func main() {
   mystr1 := "create" //create string1
   fmt.Println("The string1 created here is:", mystr1)
   mystr2 := "craete" //create string2
   fmt.Println("The string2 created here is:", mystr2)
   fmt.Println("Are the strings equal?")
   if strings.Compare(mystr1, mystr2) == 0 { //use strings.compare function
      fmt.Println("The strings are equal.") //print slices are equal
   } else {
      fmt.Println("The strings are not equal") //print slices are not equal
   }
}

输出

The string1 created here is: create
The string2 created here is: craete
Are the strings equal?
The strings are not equal

结论

我们使用三种方法执行了比较两个字符串的程序。在第一种方法中,我们使用了简单的比较运算符;在第二个例子中,我们使用了bytes.Equal()函数;在第三个例子中,我们使用了strings.Compare()函数。

更新于:2023年2月13日

623 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告