Golang程序 将一个字符串分成’N’等份

Golang程序 将一个字符串分成’N’等份

在Go编程语言中,字符串是一种内置的数据类型,表示字符序列。它们使用双引号(”)定义,可以包含任何有效的UniExample字符。当一个字符串被分割成n个相等的部分时,会产生n个长度相等的子字符串。使用编程语言中的字符串拆分或字符串切片技术,可以获得子串。让我们看看这些例子来理解其中的逻辑。

方法1:使用for循环和内置的append函数

在这个方法中,定义了一个名为divideString的函数,接受两个输入,一个字符串和一个整数,并输出一个对应于原始字符串的各个组成部分的字符串切片。为了确定每个组成部分的大小,该函数将字符串划分为整数。然后用一个for循环来遍历字符串并提取各个部分。有了一个样本字符串和一个整数,main函数执行divideString函数并打印出产生的部分。

语法

func append(slice, element_1, element_2…, element_N) []T

append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(format package)包,其中main产生可执行实例,fmt帮助格式化输入和输出。

  • 第2步 – 定义一个函数divideString,接收两个参数:字符串mystr和一个整数size。

  • 第3步 – 创建一个类型为[]string的变量parts来存储字符串的分割部分。

  • 第 4步– 通过使用整数除法len(str)/size计算每个部分的大小。

  • 第 5步– 使用for循环来迭代字符串并提取部分。

  • 第6步– 在每次迭代中,计算当前部分的开始和结束索引。开始索引是i * partSize,其中i是当前迭代号。

  • 第 7步 – 结束索引是start + partSize,除了最后一次迭代,它被设置为len(str)。

  • 第8步 – 将当前的部分(str[start:end])追加到parts变量中。在for循环结束后,返回parts变量。

  • 第 9步 – 在主函数中,调用divideString函数,传入一个样本字符串和一个整数。

  • 第 10步 – 使用fmt.Println(parts)打印得到的部件,其中ln表示新行。

  • 第 11步– 该算法通过使用整数除法将字符串分割成n个相等的部分,并使用for循环,通过计算每个部分的开始和结束索引来提取字符串的部分。

例子

在下面的例子中,我们将使用for循环和内置的append函数在golang中把一个字符串分成 “N “等份

package main
import (
   "fmt"
)

func divideString(mystr string, size int) []string {
   var parts []string
   partSize := len(mystr) / size
   for i := 0; i < size; i++ {
      start := i * partSize
      end := start + partSize
      if i == size-1 {
         end = len(mystr)
      }
      parts = append(parts, mystr[start:end])
   }
   return parts
}

func main() {
   mystr := "Hello,alexa!" //create a string
   fmt.Println("The string given here is:")
   n_parts := divideString(mystr, 3)
   fmt.Println("The string after is converted to n equal parts:")
   fmt.Println(n_parts)  //print the string divided into n equal parts 
}

输出

The string given here is:
The string after is converted to n equal parts:
[Hell o,al exa!]

方法2:使用len法

在这个方法中,我们将学习如何将一个字符串分成 “N “个相等的部分。这个程序在使用数学包的ceil函数计算部分大小后,使用for循环将字符串分成n个部分。最终的输出结果是使用fmt包显示的。

语法

math.Ceil()

一个浮点数可以用上限法四舍五入到最接近的整数。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(格式包)包,其中main产生可执行的例子,fmt帮助格式化输入和输出。

  • 第2步 – 创建一个函数main,并在该函数中把字符串和字符串的第n部分作为输入的大小。

  • 第 3步 – 通过将输入字符串的长度除以size并四舍五入到最近的整数(使用算术),使用Ceil()方法确定每个部分的大小。

  • 第4步 – 从头开始创建一个片断数组来存储输入字符串的成分。

  • 第 5步 – 从索引0开始,使用for循环遍历输入字符串。

  • 第6步– 通过将当前的循环索引乘以部件的大小,计算出当前部件的开始和结束索引,如果结束索引超过了输入字符串的长度,则改变它。

  • 第7步 – 使用开始和结束索引对输入字符串进行切片,然后将得到的部件添加到部件阵列中。

  • 第8步 – 当第一个循环完成后,使用另一个循环来输出输入字符串的每个部件及其索引。

  • 第9步– 总的来说,这个程序利用了Golang中的数学和fmt包,使用ceil函数来确定将字符串分成n个部分所需的分区数量,并使用for循环来反复循环文本。使用 fmt 包,最终输出结果显示。

例子

在下面的例子中,我们将使用len方法在golang中把一个字符串分成 “N “等份。

package main
import (
   "fmt"
   "math"
)

func main() {
   input_string := "Hello, alexa!" //create a string
   fmt.Println("The input string given here is:", input_string)
   size := 3
   fmt.Println("The string after getting divided into n equal parts is:")

   partSize := int(math.Ceil(float64(len(input_string)) / float64(size)))
   parts := make([][]rune, size)

   for i := 0; i < size; i++ {     //run a loop get the string in n equal parts
      start := i * partSize
      end := start + partSize
      if end > len(input_string) {
         end = len(input_string)
      }
      parts[i] = []rune(input_string)[start:end]
   }

   for i, part := range parts {
      fmt.Printf("Part %d: %s\n", i+1, string(part))
   }
}

输出

The input string given here is: Hello, alexa!
The string after getting divided into n equal parts is:
Part 1: Hello
Part 2: , ale
Part 3: xa!

结论

我们用两个例子执行了将一个字符串分成n等份的程序。在第一个例子中我们使用了循环和内置的append函数,在第二个例子中我们使用了len方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程