AG广东会,山东十一选五,大发

?
  • AG广东会400电话
  • 微网小程序
  • AI电话山东十一选五
  • 电商代运营
  • AG广东会,山东十一选五,大发:全 部 栏 目

    AG广东会400电话 网络优化推广 AI电话山东十一选五 呼叫中心 网站建设 商标?知产 微网小程序 电商运营 彩铃?短信 增值拓展业务
    Golang中文字符串截取函数实现原理

    在golang中可以通过切片截取一个数组或字符串,但是当截取的字符串是中文时,可能会出现的问题是:由于中文一个字不只是由一个字节组成,所以直接通过切片可能会把一个中文字的编码截成两半,结果导致最后一个字符是乱码。

    例如:

    想要截取前四个字

    name := "我是胡八一"
    fmt.Println("name[:4] = ",name[:4])

    执行后得到的结果会是这样的:

    name[:4] = 我?

    解决方法:
    先将其转为[]rune,再截取后,转会string

    nameRune := []rune(name)
    fmt.Println("string(nameRune[:4]) = ",string(nameRune[:4]))

    运行结果:

    string(nameRune[:4]) =  我是胡八

    好了弄懂了原理我们来写一个完整的Golang中文字符串截取函数

    func SubString(str string, begin, length int) string {
      fmt.Println("Substring =", str)
      rs := []rune(str)
      lth := len(rs)
      fmt.Printf("begin=%d, end=%d, lth=%d\n", begin, length, lth)
      if begin  0 {
        begin = 0
      }
      if begin >= lth {
        begin = lth
      }
      end := begin + length
    
      if end > lth {
        end = lth
      }
      fmt.Printf("begin=%d, end=%d, lth=%d\n", begin, length, lth)
      return string(rs[begin:end])
    }

    实现Golang中文字符串截取函数很简单利用golang原理语句就可实现

    您可能感兴趣的文章:
    • golang 中获取字符串个数的方法
    • 简单谈谈Golang中的字符串与字节数组
    • Golang 中整数转字符串的方法
    • Golang 统计字符串字数的方法示例
    • Golang实现字符串倒序的几种解决方案
    • Golang 语言高效使用字符串的方法
    上一篇:Go语言中slice作为参数传递时遇到的一些“坑”
    下一篇:Mac上Go环境和VS Code的正确安装与配置方法
  • 相关文章
  • ?

    ? 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Golang中文字符串截取函数实现原理 Golang,中文,字符串,截取,

    AG广东会官网入口(中国)官方网站-IOS/Android通用版(2026已更新)