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+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告