Golang 将字符串左侧填充零
在 Go 编程语言中,字符串是一种内置数据类型,表示字符序列。它们使用双引号(”)定义,可以包含任何有效的 Unicode 字符。在本文中,我们将学习在字符串左侧填充 0 的不同技术。
方法 1:使用自定义函数
在这种方法中,我们将通过创建一个外部函数来实现。该函数接受要填充的字符串和长度作为参数,并返回在其左侧添加零后的最终字符串。
步骤
- 步骤 1 - 首先,我们需要导入 fmt 包。
-
步骤 2 - 然后,我们需要创建 PadLeft() 函数。该函数接受要填充的字符串和应有的长度作为参数。
-
步骤 3 - 该函数使用 while 循环,将零添加到字符串的左侧,直到字符串的长度变为初始化的长度。
-
步骤 4 - 返回最终结果。现在开始 main() 函数。在 main() 函数内初始化一个字符串并存储一个值。进一步将该字符串打印到屏幕上。
-
步骤 5 - 现在,通过传递所需的参数调用 PadLeft() 函数。将函数得到的结果存储在一个新变量中。
-
步骤 6 - 使用 fmt.Println() 函数将字符串打印到屏幕上。
示例
在此示例中,我们将编写一个 Go 语言程序,用零填充字符串的左侧。
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
方法2:使用内置函数
在这种方法中,我们将使用内部函数如repeat和join。下面解释了两种语法。
语法
func Repeat(str string, count int) string
Repeat() 函数存在于字符串包中,用于根据指定的整数变量创建字符串的副本。它接受两个参数,一个是要重复的字符串,另一个是名为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
在本文中,我们将编写一个使用repeat()函数在左侧填充字符串0的Go语言程序。
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
结论
我们成功地编译和执行了一个Golang程序,用示例展示了如何用0填充字符串。在这里我们使用了Go语言的外部函数和库函数来达到这个结果。在这里我们同时使用了外部函数和库函数。
极客笔记