Go語言程式:去除前導零


在 Go 語言中,移除數字或字串開頭出現的零被稱為“去除前導零”。前導零通常出於格式化或對齊的需要而新增,但它們並不包含任何重要的資訊。可以去除它們以提高數字或字串的可用性和可讀性。需要注意的是,前導零有時在某些特定應用中,例如某些金融或科學應用中,可能至關重要。讓我們透過這個程式來清晰地理解這個概念。在這個程式中,我們將學習如何使用不同的示例來去除前導零。

方法一:使用 TrimLeft 函式

此方法使用 TrimLeft 函式從輸入字串 "0000892" 中去除所有前導零 ("0"),從而得到輸出字串 "892"。讓我們透過示例和演算法來看一下它的執行。

語法

TrimLeft()

要從字串中移除前導空格或特定字元,請使用 **TrimLeft()** 函式。它需要兩個引數:要更改的字串以及要從字串開頭刪除的字元或字元。它將返回修改後的字串。

演算法

  • **步驟 1** - 建立一個 main 包,並在程式中宣告 fmt(格式化包)和 strings 包,其中 main 生成可執行示例,fmt 幫助格式化輸入和輸出。

  • **步驟 2** - 建立一個 main 函式,並在該函式內建立一個字串變數 initial_value 並賦予它一個帶有前導零的值。

  • **步驟 3** - 使用 TrimLeft 函式對 initial_value 變數進行操作,刪除字元(在本例中為 "0"),將其作為引數傳遞。

  • **步驟 4** - 建立一個新的變數 output 並將其賦值為 TrimLeft 函式的輸出。

  • **步驟 5** - 使用 fmt.Println() 函式(其中 ln 表示換行)將輸出列印到控制檯。

  • **步驟 6** - TrimLeft 函式的工作方式是從字串的開頭刪除您指定的字元。在本例中,它刪除所有前導零。然後將輸出變數設定為結果,然後將其列印到控制檯。

示例

在這個例子中,我們將看到如何使用 TrimLeft() 函式去除前導零。

package main
import (
   "fmt" 
   "strings"
)

func main() {
   initial_value := "0000000000892" //create a string with leading zeros
   fmt.Println("The initial input value is:", initial_value)

   output := strings.TrimLeft(initial_value, "0")//remove leading zeros using built-in function
   fmt.Println("The result after removing leading zeros is:")
   fmt.Println(output) //print output on the console
}

輸出

The initial input value is: 0000000000892
The result after removing leading zeros is:
892

方法二:使用迴圈迭代字串的字元

在此方法中,此示例中使用迴圈迭代輸入字串中的每個字元。如果該字元是零並且在迴圈期間仍然是前導零,則不會將其新增到結果中。否則,將對其進行檢查。在檢測到第一個非零字元後,所有後續字元都將新增到結果中,並將 leading_zero 變數設定為 false。結果字串中將沒有任何前導零。讓我們來看一下示例和演算法。

演算法

  • **步驟 1** - 建立一個 main 包,並在程式中宣告 fmt(格式化包)包,其中 main 生成可執行示例,fmt 幫助格式化輸入和輸出。

  • **步驟 2** - 建立一個名為 removeLeadingZeros 的方法,它接受一個名為 str 的字串作為輸入。

  • **步驟 3** - 將變數 leading_zero 宣告為 true,並將 output 宣告為空字串。

  • **步驟 4** - 使用 for 迴圈迭代輸入字串中的每個字元。

  • **步驟 5** - 在迴圈內檢查 leading_zero 是否為 false 或當前字元是否不是零。如果其中一個條件為真,則將當前字元新增到結果字串並將 leading_zero 更改為 false。

  • **步驟 6** - 迴圈終止後,返回輸出字串。

  • **步驟 7** - 從 main 函式呼叫 removeLeadingZeros 函式並提供 initial_value 字串。將結果放入 output 變數。

  • **步驟 8** - 使用 fmt.Println() 函式(其中 ln 表示換行)將 output 變數列印到控制檯。

示例

在這個例子中,我們將學習如何使用迴圈迭代字串的字元來去除前導零。

package main
import (
   "fmt"
)

func removeLeadingZeros(str string) string {
   var output string    //create an empty string
   leading_zero := true     //set the flag as true 
   for _, ch := range str {
      if ch != '0' || !leading_zero {
         output += string(ch)
         leading_zero = false
      }
   }
   return output //return the output with no leading zeros
}

func main() {
   initial_value := "000000000892"   //create a string with leading zeros
   fmt.Println("The initial input value is:", initial_value)
   output := removeLeadingZeros(initial_value)
   fmt.Println("The result after removing leading zeros is:")
   fmt.Println(output)  //print the output on the console with no leading zeros
}

輸出

The initial input value is: 000000000892
The result after removing leading zeros is:
892

結論

我們使用兩個示例執行了去除前導零的程式。在第一個示例中,我們使用了內建函式 TrimLeft,在第二個示例中,我們使用 for 迴圈迭代每個字元。這兩個程式都給出類似的輸出。

更新於:2023年2月20日

3K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.