目录
1 前言
2 字符串操作
2.1 字符串声明与赋值
2.2 字符串长度
2.3 字符串轮询
2.4 字符串中字符替换
1 前言
如果你对博客有任何疑问或者想更深入学习 go,请加微信群,我们一起进步:
2 字符串操作
2.1 字符串声明与赋值
字符串声明和赋值使用 := 操作符。代码如下:
package main
import "fmt"
func main() {
s := "hello jiuxi"
fmt.Println(s)
}
2.2 字符串长度
获取字符串长度可以使用函数 len()。但是英文字符和中文字符 len() 的处理结果不同,英文字符长度为 1,中文字符长度为 3。代码如下:
package main
import "fmt"
func main() {
enStr := "h"
cnStr := "九"
fmt.Printf("the length of enStr is: %d\n", len(enStr))
fmt.Printf("the length of cnStr is: %d\n", len(cnStr))
}
输出结果为:
the length of enStr is: 1
the length of cnStr is: 3
2.3 字符串轮询
字符串常用的场景之一是轮询字符串并获取其中的字符,但是根据 2.2 所述,中英文字符 len() 值不同,因此容易导致 bug 产生,如下代码所示:
package main
import "fmt"
func main() {
str := "hello 九析"
for i := 0; i < len(str); i++ {
fmt.Println(str[i])
}
}
本来希望打印 "hello 九析",但是实际结果却打印出乱码:
正确使用方式如下:
package main
import "fmt"
func main() {
str := "hello 九析"
for _, c := range str {
fmt.Printf( "%c", c )
}
}
2.4 字符串中字符替换
比如想将“九析”变成“八析”该如何操作?代码如下:
package main
import "fmt"
func main() {
srcStr := "九析"
tar := []rune( srcStr ) # 将字符串 strStr 切片,类似 java 的 split
tar[0] = '八' # 操作符是 =。因为 = 是赋值,而 := 是变量定义赋值
fmt.Println( string( tar ) ) # 不能直接输出 tar,必须经过强制字符串转换
}
自此,九析带你轻松完爆了基本字符串操作。
有疑问加站长微信联系(非本文作者)