Go语言程序:将字符串转换为数组


在Go语言中,我们有多种数据类型来存储数据,其中字符串数据类型用于存储一系列字符。字符串变量的大小为1或8位。另一方面,数组是一种数据类型,用于在连续的内存位置存储数据。

语法

func fields(s string) []string

Fields() 函数位于 strings 包中,用于将字符串转换为字符串数组。此函数接收一个字符串值作为参数,并返回相应的数组作为结果。

func split(s, sep string) []string

Split() 函数接收两个字符串作为参数,一个是我们要分割的字符串,另一个是我们希望用来分割字符串的字符或字母。该函数返回最终输出,该输出是一个包含分割后获得的字符串的数组。

func typeofobject(x interface{})

TypeOf() 函数用于获取任何变量的类型。此函数位于 reflect 包中,它接收要确定其类型的变量作为参数。然后,该函数返回指定变量的类型作为结果。

方法 1:使用 Fields() 函数

在此方法中,我们将使用一个名为 Fields() 的内置函数。

算法

  • 步骤 1 - 首先,我们需要定义 main 包。

  • 步骤 2 - 然后导入 fmt 和 strings 包。

  • 步骤 3 - 调用 main() 函数。

  • 步骤 4 - 初始化并定义一个名为 s 的字符串,并为其赋值。此外,在屏幕上打印此字符串。

  • 步骤 5 - 现在调用 strings 包中定义的 fields() 函数,并将上述初始化的字符串作为参数传递给它。该函数通过执行转换返回结果。

  • 步骤 6 - 将函数返回的数组存储在单独的变量中,并使用 fmt.Println() 函数在屏幕上打印结果。

示例

在此示例中,我们将使用 fields() 函数将字符串转换为数组。

package main
import (
   "fmt"
   "reflect"
   "strings"
)

func main() {
   // initializing the string variable and assign value to it
   var s string = "this is a sentence lets break it !"
   fmt.Println("The given data is:\n", s, "and its type is", reflect.TypeOf(s))
   arrayOfString := strings.Fields(s)
   fmt.Println()
   fmt.Println("The array obtained from the string is:\n", arrayOfString)
}

输出

The given data is:
 this is a sentence lets break it ! and its type is string

The array obtained from the string is:
 [this is a sentence lets break it !]

方法 2:使用 Split() 函数

在此方法中,我们将使用 split() 函数将数组转换为字符串。

算法

  • 步骤 1 - 首先,我们需要定义 main 包并导入 fmt 和 strings 包。

  • 步骤 2 - 接下来,调用 main() 函数。

  • 步骤 3: - 初始化并定义一个名为 s 的字符串,并为其赋值,即我们要分割的字符串。初始化一个名为 sep 的空字符串变量,并为其赋值。

  • 步骤 4 - 现在,使用 fmt.Println() 函数在屏幕上打印字符串。

  • 步骤 5 - 这将是 s 字符串将被分隔的值。将“ ”(空格)存储在 sep 变量中,因为我们希望获得字符串的每个单词,但以数组格式。

  • 步骤 6 - 现在调用 strings 包中定义的 split() 函数,并将字符串以及 sep 变量作为参数传递给它。该函数将根据提供的变量分割字符串并返回相应的数组。

  • 步骤 7 - 将函数返回的字符串数组存储在单独的变量中,并使用 fmt.Println() 函数在屏幕上打印结果。

示例

以下是使用 split() 函数将字符串转换为数组的 Go 语言程序。

package main
import (
   "fmt"
   "reflect"
   "strings"
)

func main() {
   // initializing the string variable
   var s string = "this is a sentence lets break it !"
   var sep string = " "
   fmt.Println("The given data is:\n", s, "and its data type is:", reflect.TypeOf(s))
   arrayOfString := strings.Split(s, sep)
   fmt.Println()
   fmt.Println("The array obtained after splitting the string is:\n", arrayOfString)
}

输出

The given data is:
 this is a sentence lets break it ! and its data type is: string

The array obtained after splitting the string is:
 [this is a sentence lets break it !]

方法 3:使用 FOR 循环

在此方法中,我们将使用 for 循环将字符串转换为数组。

算法

  • 步骤 1 - 首先,我们需要定义 main 包。

  • 步骤 2 - 然后导入 fmt 和 reflect 包。

  • 步骤 3 - 调用 main() 函数。

  • 步骤 4 - 初始化并定义一个名为 s 的字符串,并为其赋值。此外,在屏幕上打印此字符串。

  • 步骤 5 - 现在使用 for 循环遍历数组,并将字符串的每个元素追加到新数组中。

  • 步骤 6 - 最后,使用 fmt.Println() 函数在屏幕上打印结果。

示例

以下是使用 for 循环将字符串转换为数组的 Go 语言程序

package main

import (
   "fmt"
   "reflect"
)

func main() {
   str := "hello world"
   fmt.Println("The given data is:\n", str, "and its data type is:", reflect.TypeOf(str))
   arr := make([]string, len(str))
   for i, r := range str {
      arr[i] = string(r)
   }
   fmt.Println()
   fmt.Println("The array obtained by the above string is:",arr)
}

输出

The given data is:
 hello world and its data type is: string

The array obtained by the above string is: [h e l l o   w o r l d]

结论

我们已成功编译并执行了一个 Go 语言程序,该程序将字符串转换为数组,并附带示例。我们为此任务使用了 strings 库中定义的 fields() 和 split() 预定义函数。这些函数接收字符串作为参数,并在执行任务后返回相应的字符串数组。

更新于: 2023年2月16日

7K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告