Go语言程序将字符串插入另一个字符串


在 Go 编程语言中,字符串是一种内置数据类型,用于表示字符序列。它们使用双引号 (") 定义,可以包含任何有效的字符。当字符串“插入”到另一个字符串中时,它会被添加到更大的字符串中或放置在更大的字符串内。这可以通过替换更大字符串中的特定子字符串或在更大字符串中的特定位置或索引处来完成。这在编程中经常使用,当需要以特定方式修改或更改字符串时,例如通过添加前缀或后缀或替换特定字符或子字符串。

方法 1:使用切片方法

在这种方法中,为了将新字符串插入到指定位置的原始字符串中,此程序使用字符串切片。

算法

  • 步骤 1 − 创建一个 package main 并声明 fmt(格式化包)包在程序中,其中 main 生成可执行示例,而 fmt 帮助格式化输入和输出。

  • 步骤 2 − 创建一个 main 函数,并在该函数中声明并初始化起始字符串、新字符串以及应插入新字符串的位置。

  • 步骤 3 − 使用字符串切片连接以下字符串以创建一个新字符串:原始字符串的一部分,从开始到指定位置,以及从指定位置到结尾的原始字符串的一部分。

  • 步骤 4 − 使用 fmt.Println() 函数在控制台上打印连接的字符串,其中 ln 表示换行符。

  • 步骤 5 − 在此示例中,“Hello, developer!”是原始字符串,“software”是要插入的字符串,位置 7 是它必须去的位置。软件首先连接要插入的字符串并从 0 到 7 切片原始字符串;然后它从 7 切片到原始字符串的末尾并连接所有内容。

示例

在此示例中,我们将学习如何使用切片将字符串插入另一个字符串。

package main
import (
   "fmt"
)

//create a function main to execute the program
func main() {
   initial_input := "Hello, developer!"  //create an original input string
   fmt.Println("The initial string given here is:", initial_input)
   new_input := "software"  //create a new string which is to be concatenated
   pos := 7
   fmt.Println("The string after new input is added:")
   fmt.Println(initial_input[:pos] + new_input + initial_input[pos:]) //concatenate the strings and print on the console
}

输出

The initial string given here is: Hello, developer!
The string after new input is added:
Hello, softwaredeveloper!

方法 2:使用 bytes.Buffer 包

此程序使用 bytes.Buffer 包来建立一个新的缓冲区,写入要插入的字符串、从指定位置到结尾的原始字符串切片以及直到指定位置的原始字符串切片。使用缓冲区的 .String() 方法,生成所需的结果。让我们看看示例和算法以了解概念。

语法

buffer.String()

String() 方法是一种基于字节的方法。在 Go 中,可增长的字节缓冲区由缓冲区结构表示。String() 方法将缓冲区的内容作为字符串返回。

算法

  • 步骤 1 − 创建一个 package main 并声明 fmt(格式化包)包在程序中,其中 main 生成可执行示例,而 fmt 帮助格式化输入和输出。

  • 步骤 2 − 创建一个 main 函数,并在该函数中声明并初始化起始字符串、新字符串以及应插入新字符串的位置。

  • 步骤 3 − 利用字节创建一个新的缓冲区。

  • 步骤 4 − 使用缓冲区的 WriteString() 方法将以下字符串添加到缓冲区:原始字符串的一部分,从开始到指定位置,以及从指定位置到结尾的原始字符串的一部分。

  • 步骤 5 − 要获取包含插入字符串的完成字符串,请使用缓冲区的 String() 方法。

  • 步骤 6 − 使用 fmt.Println() 函数发布完成的字符串,其中 ln 表示换行符。

示例

在此示例中,我们将学习如何使用缓冲区包将字符串插入另一个切片。

package main
import (
   "bytes"
   "fmt"
)
//create a function main to execute the program
func main() {
   initial_input := "Hello, developer!"    //create an original string
   fmt.Println("The original string given here is:", initial_input)
   new_input := "software"  //create a new string 
   fmt.Println("The new string to be added here is:", new_input)
   pos := 7

   var buffer bytes.Buffer
   buffer.WriteString(initial_input[:pos])  //add the string to the buffer 
   buffer.WriteString(new_input)
   buffer.WriteString(initial_input[pos:])
   fmt.Println(buffer.String())    //print the concatenated string on the console
}

输出

The original string given here is: Hello, developer!
The new string to be added here is: software
Hello, softwaredeveloper!

结论

我们使用两个不同的示例执行了将字符串插入另一个字符串的程序。在第一个示例中,我们使用了字符串切片,在第二个示例中,我们使用了 bytes.Buffer 包。两个程序都给出类似的输出。

更新于: 2023年2月20日

1K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.