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) 
    

      

     

  • 相关阅读:
    vim使用
    .net程序员转java之mybatis学习
    Redis 学习笔记
    Effective C# 笔记01
    Android 开发感想
    入职两个月,WPF开发感想
    Oracle 学习笔记二
    Oracle 开发使用笔记一
    Java 集合——Map集合
    Java 集合——Set集合
  • 原文地址:https://www.cnblogs.com/saryli/p/13277762.html
Copyright © 2011-2022 走看看