zoukankan      html  css  js  c++  java
  • go 字符串截取指定字节长度

    func SubstrByByte(str string, length int) string {
    
        if len([]byte(str))<=length{
            return str
        }
        bs := []byte(str)[:length]
        bl := 0
        for i:=len(bs)-1; i>=0; i-- {
            switch {
            case bs[i] >= 0 && bs[i] <= 127:
                return string(bs[:i+1])
            case bs[i] >= 128 && bs[i] <= 191:
                bl++;
            case bs[i] >= 192 && bs[i] <= 253:
                cl := 0
                switch {
                case bs[i] & 252 == 252:
                    cl = 6
                case bs[i] & 248 == 248:
                    cl = 5
                case bs[i] & 240 == 240:
                    cl = 4
                case bs[i] & 224 == 224:
                    cl = 3
                default:
                    cl = 2
                }
                if bl+1 == cl {
                    return string(bs[:i+cl])
                }
                return string(bs[:i])
            }
        }
        return ""
    }
    func main() {
        str :="你好,我们正在进行测试测试111活动,只要邀请1位好友添加我
    的微信就可以获得奖品 参与流程:①点击下面链接,生成专属海报;②进入链接后长按保存海报,将海报发给好友或朋友圈 ③邀请1位好友扫码添加,即可成功获得奖品 ④进入链接点击
    查看进度,完成任务后点击「领取奖励」即可领取哦 注意事项:请不要直接转发活动链接给好友,是无法成功记录数据的哦~海报转发海报转发海报转发海报转发海报转发海报转发海报转
    发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海报转发海"
        fmt.Println(SubstrByByte(str,738))
    }
  • 相关阅读:
    PDO 数据访问抽象层
    注册审核、批量删除
    分页查询
    会话用法
    封装成类
    多条件查询(复选框条件)
    IP子网划分
    redhat 用yum安装的apache、mysql一般默认安装在哪个目录下?
    nslookup
    linux 设置时间
  • 原文地址:https://www.cnblogs.com/zxqblogrecord/p/14714567.html
Copyright © 2011-2022 走看看