Golang 在字符串的右侧填充0
在Go编程语言中,字符串是一种内置的数据类型,表示字符序列。它们使用双引号(”)定义,并且可以包含任何有效的Unicode字符。在本文中,我们将编写一个Go语言程序,将字符串右侧填充0。
方法1:使用自定义函数
在这个方法中,我们将创建一个外部函数。该函数接受要填充的字符串和长度作为参数,并返回添加0到右侧的最终字符串。
步骤
- 步骤1 - 首先,我们需要导入fmt包。
-
步骤2 - 然后,我们需要创建PadRight()函数。该函数接受字符串和它应该具有的长度作为参数。
-
步骤3 - 函数使用一个while循环,将0添加到字符串的右侧,直到字符串的长度等于初始化的长度。
-
步骤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
方法2:使用内部函数
在这种方法中,我们将使用内部函数如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
结论
我们已经成功编译和执行了一个Golang程序,用示例说明了如何将字符串从右侧填充0。在这里,我们使用了go中的外部和库函数来实现结果。
极客笔记