Go語言程式:在字串左側填充0
在Go程式語言中,字串是一種內建資料型別,用於表示字元序列。它們使用雙引號(")定義,可以包含任何有效的Unicode字元。在本文中,我們將學習不同的技術來在字串左側填充0。
方法一:使用使用者自定義函式
在這種方法中,我們將透過建立一個外部函式來實現此目的。該函式接受要填充的字串和長度作為引數,並在其左側新增零後返回最終字串。
演算法
步驟1 − 首先,我們需要匯入fmt包。
步驟2 − 然後,我們需要建立PadLeft()函式。此函式接受字串及其應具有的長度作為引數。
步驟3 − 該函式然後使用while迴圈,在字串左側新增一個零,直到字串的長度等於初始化的長度。
步驟4 − 返回最終結果。現在開始main()函式。在main()中初始化一個字串併為其儲存一個值。然後在螢幕上列印字串。
步驟5 − 現在,透過向其傳遞所需的引數來呼叫PadLeft()函式。將函式獲得的結果儲存在一個新變數中。
步驟6 − 使用fmt.Println()函式在螢幕上列印字串。
示例
在此示例中,我們將編寫一個Go語言程式,在字串左側填充0。
package main import "fmt" //creating a function to add zeroes to a string func PadLeft(str string, length int) string { for len(str) < length { str = "0" + str } return str } func main() { // initializing a string str := "123" newStr := PadLeft(str, 6) fmt.Printf("The given string is: %s\n", str) fmt.Printf("Padded string is: %s\n", newStr) }
輸出
The given string is: 123 Padded string is: 000123
方法二:使用內建函式
在這種方法中,我們將使用內部函式,如repeat和join。下面解釋了這兩種語法:
語法
func Repeat(str string, count int) string
Repeat()函式位於strings包中,用於根據指定的整型變數建立字串的副本。它接受兩個引數,一個是需要重複的字串,另一個是名為count的整數值。然後,該函式返回包含提供的字串重複的最終字串。
func Join(s []string, sep string) string
join函式用於將陣列轉換為字串。此函式位於strings包中。它接受兩個引數,第一個是我們希望轉換的陣列,第二個是將陣列元素轉換為字串後應使用分隔符分隔它們的分隔符,並返回最終字串。
func TrimLeft(str, cutset string) string
TrimLeft()函式位於strings包中,用於在刪除左側所有元素後獲取字串。它接受兩個引數。一個是需要修剪的字串,另一個是包含應刪除的元素的子字串。然後,該函式在執行相應的更新後返回最終字串。
演算法
步驟1 − 首先,我們需要匯入fmt和strings包。
步驟2 − 然後,開始main()函式。在main()中初始化一個字串變數併為其賦值。然後在螢幕上列印字串。
步驟3 − 現在,呼叫strings.Repeat()函式,並將字串以及應重複到的整數值作為引數傳遞給該函式。
步驟4 − 將獲得的結果與上面初始化的字串變數一起傳遞,並獲得包含所有這些值的字串陣列。
步驟5 − 但我們不需要字串陣列,要將此字串陣列轉換回字串,請將其作為引數傳遞給Join()函式,並使用空字串連線它。
步驟6 − 將結果儲存在一個變數中,並使用fmt.Println()函式在螢幕上列印它。
示例1
在本文中,我們將編寫一個Go語言程式,使用repeat()函式在左側填充0。
package main import ( "fmt" "strings" ) func main() { // initializing a string var str string = "123" var newStr string = strings.Join([]string{strings.Repeat("0", 6-len(str)), str}, "") fmt.Printf("The given string is: %s\n", str) fmt.Printf("Padded string is: %s\n", newStr) }
輸出
The given string is: 123 Padded string is: 000123
示例2
在此示例中,我們將使用TrimLeft()函式在字串左側填充0。
package main import ( "fmt" "strings" ) func main() { // initializing a string var str string = "abc" var newStr string = strings.TrimLeft(fmt.Sprintf("%06s", str), " ") fmt.Printf("The given string is: %s\n", str) fmt.Printf("Padded string is: %s\n", newStr) }
輸出
The given string is: abc Padded string is: 000abc
示例3
在此示例中,我們將使用bytes.Join()和bytes.Repeat()函式來填充給定的字串。
package main import ( "bytes" "fmt" ) func main() { // initializing a string var str string = "abc" newStr := string(bytes.Join([][]byte{bytes.Repeat([]byte("0"), 6-len(str)), []byte(str)}, []byte(""))) fmt.Printf("The given string is: %s\n", str) fmt.Println("Padded string is: \n", newStr) }
輸出
The given string is: abc Padded string is: 000abc
結論
我們已經成功編譯並執行了一個Go語言程式,該程式使用示例在字串左側填充0。在這裡,我們使用了Go語言中的外部函式和庫函式來實現結果。在這裡,我們使用了外部函式和庫函式。