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