Go 字符串比较

在Go语言中,字符串是使用UTF-8编码编码的不可变的任意字节链。您可以使用两种不同的方式来比较字符串:

1.使用比较运算符:转到字符串支持比较运算符,即==,!=,> =,<=,<,>。在这里,==!=运算符用于检查给定的字符串是否相等。和> =,<=,<,>操作符用于查找词法顺序。这些运算符的结果为布尔类型,意味着如果条件满足,则返回true,否则返回false

字符串的==和!=运算符示例1:

//包含字符串的==和!=运算符
package main

import "fmt"

func main() {

    //创建和初始化字符串
    //使用简写声明
    str1 := "Geeks"
    str2 := "Geek"
    str3 := "nhooo"
    str4 := "Geeks"

    //检查字符串是否相等
    //使用==运算符
    result1 := str1 == str2
    result2 := str2 == str3
    result3 := str3 == str4
    result4 := str1 == str4

    fmt.Println("Result 1: ", result1)
    fmt.Println("Result 2: ", result2)
    fmt.Println("Result 3: ", result3)
    fmt.Println("Result 4: ", result4)

    //检查字符串是否不相等
    //使用!=运算符
    result5 := str1 != str2
    result6 := str2 != str3
    result7 := str3 != str4
    result8 := str1 != str4

    fmt.Println("\nResult 5: ", result5)
    fmt.Println("Result 6: ", result6)
    fmt.Println("Result 7: ", result7)
    fmt.Println("Result 8: ", result8)

}

输出:

Result 1:  false
Result 2:  false
Result 3:  false
Result 4:  true

Result 5:  true
Result 6:  true
Result 7:  true
Result 8:  false

字符串的比较运算符示例2:

//字符串的比较运算符
package main 
  
import "fmt"
  
func main() { 
  
        //创建和初始化
        //使用速记声明
    myslice := []string{"Geeks", "Geeks", 
                    "gfg", "GFG", "for"} 
      
    fmt.Println("Slice: ", myslice) 
  
    //使用比较运算符
    result1 := "GFG" > "Geeks"
    fmt.Println("Result 1: ", result1) 
  
    result2 := "GFG" < "Geeks"
    fmt.Println("Result 2: ", result2) 
  
    result3 := "Geeks" >= "for"
    fmt.Println("Result 3: ", result3) 
  
    result4 := "Geeks" <= "for"
    fmt.Println("Result 4: ", result4) 
  
    result5 := "Geeks" == "Geeks"
    fmt.Println("Result 5: ", result5) 
  
    result6 := "Geeks" != "for"
    fmt.Println("Result 6: ", result6) 
}

输出:

Slice:  [Geeks Geeks gfg GFG for]
Result 1:  false
Result 2:  true
Result 3:  false
Result 4:  true
Result 5:  true
Result 6:  true

2.使用Compare()方法:您还可以使用字符串包提供的内置函数Compare()比较两个字符串。在比较两个字符串后,此函数返回整数值。返回值为:

  • 如果str1 == str2,则返回0 。

  • 如果str1> str2,返回1 。

  • 如果str1 <str2,返回-1 。

语法:

func Compare(str1, str2 string) int
//字符串使用compare()函数
package main 
  
import ( 
    "fmt"
    "strings"
) 
  
func main() { 
  
    //比较字符串使用比较函数
    fmt.Println(strings.Compare("gfg", "Geeks")) 
      
    fmt.Println(strings.Compare("nhooo", "nhooo")) 
      
    fmt.Println(strings.Compare("Geeks", " GFG")) 
      
    fmt.Println(strings.Compare("GeeKS", "GeeKs")) 

}

输出:

1
0
1
-1