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 迴圈迭代每個字元。這兩個程式都給出類似的輸出。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP