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))
    }
  • 相关阅读:
    dada的GCD
    涛神的城堡
    手机信号
    涛涛的Party
    壮壮的数组
    不安全字符串
    gdb core 调试多线程
    makefile $@, $^, $<, $? 表示的意义
    KMP算法的next[]数组通俗解释
    【原创】支持同时生成多个main函数 makefile 模板
  • 原文地址:https://www.cnblogs.com/zxqblogrecord/p/14714567.html
Copyright © 2011-2022 走看看