十分钟了解Golang的string的使用方法

121 阅读1分钟

字符串

  • string是数据类型,不是引用类型或者指针类型,它的默认值就是空字符串,而不是nil
  • string是只读的byte slice,len函数返回的是它所包含的byte数
  • string的byte数组可以存放任何数据

image.png

Unicode UTF8

  • Unicode是一种字符集
  • UTF8是unicode的存储实现(转换为字节序列的规则)
func TestStringDemo1(t *testing.T) {
   var s string//声明
   s = "中"
   t.Log(len(s)) //3,是byte数
   c := []rune(s)
   t.Log(len(c))                    //1
   t.Logf("%s unicode %x", s, c[0]) //中 unicode 4e2d
   t.Logf("%s UTF8 %x", s, s)       //中 UTF8 e4b8ad
}
func TestStringToRune(t *testing.T) {
   s := "国产软件自主可控"
   for _, c := range s {
      t.Logf("%[1]c %[1]d", c) //[1]代表和第一个参数对应
      /*
            国 22269
             产 20135
            软 36719
            件 20214
             自 33258
             主 20027
             可 21487
             控 25511
      */
   }
}

常用字符串函数

连接与分割

func TestStringFun(t *testing.T) {
   s := "A,B,C"
   parts := strings.Split(s, ",") //字符串分割
   for _, part := range parts {
      t.Log(part)
      /*
         A
         B
         C
      */
   }
   t.Log(strings.Join(parts, "-")) //A-B-C,字符串连接
}

[字符串-整数]类型转换

func TestConv(t *testing.T) {
   s := strconv.Itoa(10) //整数转为字符串
   t.Log("str" + s)      //str10
   //字符串转整数
   if i, err := strconv.Atoi("10"); err == nil {
      t.Log(10 + i)
   } else {
      t.Log("类型转换错误!")
   }
}

本文章参考来自Go语言从入门到实战