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位好友添加我\n的微信就可以獲得獎品 參與流程:①點擊下面鏈接,生成專屬海報;②進入鏈接后長按保存海報,將海報發給好友或朋友圈 ③邀請1位好友掃碼添加,即可成功獲得獎品 ④進入鏈接點擊\n查看進度,完成任務后點擊「領取獎勵」即可領取哦 注意事項:請不要直接轉發活動鏈接給好友,是無法成功記錄數據的哦~海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉\n發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海"
    fmt.Println(SubstrByByte(str,738))
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM