zoukankan      html  css  js  c++  java
  • golang学习笔记--中英文字符串截取

    用golang截取字符串时需要用到string 包, 通过将字符串转为[]byte类型进行切片并用string转为截取完的字符串结果

    // 截取字符串前三位
    str := "fidding"
    str = string([]byte(str)[:3])
    // 结果为 "fid"
    fmt.Println(str) 

    [startIndex:endIndex]使用的是半开半闭区间(左边为闭,右边为开),即startIndex<=n<endIndex

    不要以为这样就解决了字符串截取问题,当遇到中文时,上面的代码便行不通了,因为中文在golang是3个字符。

    这时候就需要用到另外一个类型rune ,使用时不考虑unicode字节,即一个中文只占一个数组下标

    将上面的代码修改如下:

    // 截取字符串前三位
    str := "你好fidding"
    str = string([]rune(str)[0:3]) 
    // 结果为 "你好f"
    fmt.Println(str) 
    

      

    golang的切片[:]并不能使用形如[:-1]这样的反向切片,当遇到截取字符串后三位时,就需要先计算字符串长度再去换算

    // 截取字符串后三位
    str := "fidding你好"
    str = string([]rune(str)[len([]rune(str))-3:])
    // 结果为 "g你好"
    fmt.Println(str) 
    

      

     

  • 相关阅读:
    消息中间件的研究(二) RabbitMQ应用场景分析
    消息中间件的研究 (一)
    35. 搜索插入位置
    374. 猜数字大小
    278. 第一个错误的版本
    367. 有效的完全平方数
    1.Storm概述简介
    7.MapReduce操作Hbase
    6.Hbase 原理
    5.Hbase API 操作开发
  • 原文地址:https://www.cnblogs.com/saryli/p/13277762.html
Copyright © 2011-2022 走看看