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語言中的外部函式和庫函式來實現結果。在這裡,我們使用了外部函式和庫函式。

更新於:2023年2月17日

2K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告