- 拼接
- 方法1: 直接使用 + 号来进行截取
- 方法 2 : 使用字节缓冲 bytes.Buffer.WriteString 的方式
- 截取
- strings包的Index()方法会从头对字符串进行搜索,获得搜索内容所属下标,完成对字符串的截取
- strings包中还提供了LastIndex()方法来反向搜索字符串
- 修改
- **Go语言无法对字符串直接进行修改,只能将字符串转换为字节数组后再进行 *** 作。**
- 格式化输出 Stringf(format, 变量1, ...)
Go语言的字符串拼接 *** 作可以通过“+” *** 作符来完成
package main import "fmt" func main() { a := "123" b := "abc" c := a + b fmt.Println(a) fmt.Println(b) fmt.Println(c) } // 123 // abc // 123abc方法 2 : 使用字节缓冲 bytes.Buffer.WriteString 的方式
通过定义字节数组, 使用 WriteString() 方法完成对数据的写入。(推荐使用)
package main import ( "bytes" "fmt" "reflect" ) func main() { a := "123" b := "abc" var c bytes.Buffer c.WriteString(a) c.WriteString(b) fmt.Println(c) fmt.Println(c.String()) fmt.Println(reflect.TypeOf(c)) } // {[49 50 51 97 98 99] 0 0} // 123abc // bytes.Buffer截取 strings包的Index()方法会从头对字符串进行搜索,获得搜索内容所属下标,完成对字符串的截取
package main import ( "bytes" "fmt" "strings" ) func main() { a := "123" b := "abc" var c bytes.Buffer c.WriteString(a) c.WriteString(b) str := c.String() index := strings.Index(str, "a") fmt.Println(index) fmt.Println(str[index:]) } // 3 // abcstrings包中还提供了LastIndex()方法来反向搜索字符串
package main import ( "bytes" "fmt" "strings" ) func main() { a := "123" b := "abc" var c bytes.Buffer c.WriteString(a) c.WriteString(b) str := c.String() index := strings.LastIndex(str, "2") fmt.Println(index) fmt.Println(str[index:]) } // 1 // 23abc修改 Go语言无法对字符串直接进行修改,只能将字符串转换为字节数组后再进行 *** 作。
package main import ( "bytes" "fmt" ) func main() { a := "123" b := "abc" var c bytes.Buffer c.WriteString(a) c.WriteString(b) str := c.String() bytes := []byte(str) for i := 0; i < 2; i++ { bytes[i] = 'A' // 注意这里使用的是单引号'' } fmt.Println(string(bytes)) } // AA3abc格式化输出 Stringf(format, 变量1, …)
package main import ( "bytes" "fmt" ) func main() { a := "123" b := "abc" var c bytes.Buffer c.WriteString(a) c.WriteString(b) str := fmt.Sprintf("%s + %s = %s", a, b, c.String()) fmt.Println(str) } // 123 + abc = 123abc
注意: fmt.Sprintf() 并不能等直接输出该结果,它只是完成把字符串整理成指定格式 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)