华域联盟 Golang Go语言按字节截取字符串的方法

Go语言按字节截取字符串的方法

本文实例讲述了Go语言按字节截取字符串的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下: // 按字节截取字符串 utf-8不乱码

func SubstrByByte(str string, length int) string {

    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 ""

}

希望本文所述对大家的Go语言程序设计有所帮助。

本文由 华域联盟 原创撰写:华域联盟 » Go语言按字节截取字符串的方法

转载请保留出处和原文链接:https://www.cnhackhy.com/109942.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们