Go 語言程式:忽略大小寫比較兩個字串


在 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:使用 Go 語言的內部函式

在本方法中,我們將學習 Go 語言的兩個內部函式 - Compare() 和 contains()。這兩個語法的解釋如下:

語法

func Compare(a, b string) int

compare() 函式位於 strings 包中,用於比較兩個字串值。此函式以兩個字串作為引數,並根據第一個字串是大於、小於還是等於第二個字串返回一個整數值。

func Contains(str, substr string) bool

contain() 函式位於 strings 包中,用於檢查給定的子字串是否出現在字串中。該函式接受兩個字串作為函式的引數,並根據子字串是否找到返回布林值。如果函式返回的值為真,則找到子字串,反之亦然。

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

在本示例中,我們將編寫一個 Go 語言程式,使用 contains() 函式比較兩個字串。

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.

結論

我們已經成功編譯並執行了一個 Go 語言程式,使用示例來忽略大小寫比較兩個字串。

更新於: 2023年2月17日

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.