Go语言字符串高效拼接的实现

+号拼接

这种拼接最简单,也最容易被我们使用,因为它是不限编程语言的,比如Go语言有,Java也有,它们是+号运算符,在运行时计算的。

var s string
s+="昵称"+":"+"志强1224"+"\n"
s+="联系方式QQ"+":"+"354662600"+"\n"
fmt.Println(s)

fmt 拼接

这种拼接,借助于fmt.Sprint系列函数进行拼接,然后返回拼接的字符串。

fmt.Sprint("昵称",":","志强1224","\n","联系方式QQ",":","354662600")

Join 拼接

这个是利用strings.Join函数进行拼接,接受一个字符串数组,转换为一个拼接好的字符串。

s:=[]string{"昵称",":","志强1224","\n","联系方式QQ",":","354662600"}
fmt.Println(strings.Join(s,""))

buffer 拼接

使用的是bytes.Buffer进行的字符串拼接,它是非常灵活的一个结构体,不止可以拼接字符串,还是可以byte,rune等,并且实现了io.Writer接口,写入也非常方便。

var b bytes.Buffer
b.WriteString("昵称")
b.WriteString(":")
b.WriteString("志强1224")
b.WriteString("\n")
b.WriteString("联系方式QQ")
b.WriteString(":")
b.WriteString("354662600")
b.WriteString("\n")
fmt.Println(b.String())

builder 拼接

为了改进buffer拼接的性能,从go 1.10 版本开始,增加了一个builder类型,用于提升字符串拼接的性能。它的使用和buffer几乎一样。

var b strings.Builder
b.WriteString("昵称")
b.WriteString(":")
b.WriteString("志强1224")
b.WriteString("\n")
b.WriteString("联系方式QQ")
b.WriteString(":")
b.WriteString("354662600")
b.WriteString("\n")
fmt.Println(b.String())

拼接函数改造

func StringPlus(p []string) string{
  var s string
  l:=len(p)
  for i:=0;i<l;i++{
   s+=p[i]
  }
  return s
}

func StringFmt(p []interface{}) string{
  return fmt.Sprint(p...)
}

func StringJoin(p []string) string{
  return strings.Join(p,"")
}

func StringBuffer(p []string) string {
  var b bytes.Buffer
  l:=len(p)
  for i:=0;i<l;i++{
   b.WriteString(p[i])
  }
  return b.String()
}

func StringBuilder(p []string) string {
  var b strings.Builder
  l:=len(p)
  for i:=0;i<l;i++{
   b.WriteString(p[i])
  }
  return b.String()
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Golang字符串的拼接方法汇总

    字符串拼接在 golang 里面其实有很多种实现. 实现方式 直接使用运算符 func BenchmarkAddStringWithOperator(b *testing.B) {     hello := "hello"     world := "world"     for i := 0; i < b.N; i++ {         _ = hello + "," + world     } } golang里面的字符串都是不可变的

  • Go语言字符串高效拼接的实现

    +号拼接 这种拼接最简单,也最容易被我们使用,因为它是不限编程语言的,比如Go语言有,Java也有,它们是+号运算符,在运行时计算的. var s string s+="昵称"+":"+"志强1224"+"\n" s+="联系方式QQ"+":"+"354662600"+"\n" fmt.Println(s) fmt 拼接 这种拼接,借助于fmt.S

  • Golang语言如何高效拼接字符串详解

    目录 01.介绍 02.操作符 + 03.strings.Join 方法 04.fmt.Sprint 方法 05.bytes.Buffer 类型 06.strings.Builder 类型 07.总结 01.介绍 在编程语言中,字符串是一种重要的数据结构.在 Golang 语言中,因为字符串只能被访问,不能被修改,所以,如果我们在 Golang 语言中进行字符串拼接操作,Golang 需要进行内存拷贝. 如果读者朋友们了解过 Golang 语言内存管理的相关知识,就会知道内存拷贝会带来性能消耗.

  • c语言 字符串的拼接和分割实例

    1.字符串的拼接 使用c的函数char *strcat(char *str_des, char *str_sou); 将字符串str_sou接在字符串str_des后面(放在str_des的最后字符和"\0"之间). 注意不要越界,可用strlen(input)函数求字符串长度之后再拼接. 2. 字符串的分割 使用c的函数 char *strtok(char *str_sou,constchar *str_sep); str_sou:待分割字符串.str_sep:分割符号. 第一次调用

  • go语言字符串的拼接和切片方法总结

    目录 一,go字符串的本质 二,字符串拼接的几种方法 1,使用+号拼接字符串 2,使用fmt包的Sprintf()函数 3,使用strings包的Join()函数 4,使用bytes.Buffer储存字符串再打印输出 三,字符串的切片 四,字符串函数 附:golang将整型切片转换为字符串 总结 一,go字符串的本质 go语言字符串的本质就是byte[]数组,里面每一个数据存的是字符的Unicode码. 二,字符串拼接的几种方法 1,使用+号拼接字符串 拼接之后返回一个新的字符串. packag

  • Go语言如何高效的进行字符串拼接(6种方式对比分析)

    目录 前言 string类型 字符串拼接的6种方式及原理 原生拼接方式"+" 字符串格式化函数fmt.Sprintf Strings.builder bytes.Buffer strings.join 切片append Benchmark对比 结论 总结 前言 日常业务开发中离不开字符串的拼接操作,不同语言的字符串实现方式都不同,在Go语言中就提供了6种方式进行字符串拼接,那这几种拼接方式该如何选择呢?使用那个更高效呢?本文我们就一起来分析一下. 本文使用Go语言版本:1.17.1 s

  • R语言中字符串的拼接操作实例讲解

    在R语言中 paste 是一个很有用的字符串处理函数,可以连接不同类型的变量及常量. 函数paste的一般使用格式为: paste(..., sep = " ", collapse = NULL) 其 中-表示一个或多个R可以被转化为字符型的对象:参数sep表示分隔符,默认为空格:参数collapse可选,如果不指定值,那么函数paste的返回值是自变量之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间

  • go语言中五种字符串的拼接方式(小结)

    目录 +拼接方式 sprintf函数 Join函数 buffer.Builderbuffer.WriteString函数 buffer.Builder函数 ps:直接使用运算符 主要结论 +拼接方式 这种方式是我在写golang经常用的方式,go语言用+拼接,php使用.拼接,不过由于golang中的字符串是不可变的类型,因此用 + 连接会产生一个新的字符串对效率有影响. func main() { s1 := "hello" s2 := "word" s3 :=

  • Objective-C中字符串的拼接方法小结

    在 java 和 c# 中,字符串的拼接是直接用 + 来操作的.在 OC 中,说是有下面3种方法, NSString* string; // 结果字符串 NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来   方法1: 复制代码 代码如下: string = [NSString initWithFormat:@"%@,%@", string1, string2 ]; 方法2: 复制代码 代码如下: string =

  • 基于C语言字符串函数的一些使用心得

    就字符串的拼接函数为例strcat.原型:extern char *strcat(char *dest,char *src);用法:#include <string.h>功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串.      返回指向dest的指针.举例: 复制代码 代码如下: // strcat.c      #include <syslib.h&

  • Go语言字符串基础示例详解

    目录 包含 Contains(s,substr string) bool ContainsAny(s, chars string) bool 统计 Count(s, substr string) int 比较 EqualFold(s, t string) bool HasPrefix(s, prefix string) bool HasSuffix(s, suffix string) bool 分割 Fields(s string) []string 下标 Index(s, sep string

随机推荐