zoukankan      html  css  js  c++  java
  • golang 中文英文混合按字节截取

    func show_strlen(s string) int {
    	sl := 0
    	rs := []rune(s)
    	for _, r := range rs {
    		rint := int(r)
    		if rint < 128 {
    			sl++
    		} else {
    			sl += 2
    		}
    	}
    	return sl
    }
    #倒序截取
    func show_substr_reverse(s string, l int) string {
    	if len(s) <= l {
    		return s
    	}
    	ss, sl, rl, rs := "", 0, 0, []rune(s)
    	for i:=len(rs)-1;i>=0;i-- {
    		r := rs[i]
    		rint := int(r)
    		if rint < 128 {
    			rl = 1
    		} else {
    			rl = 2
    		}
    
    		if sl + rl > l {
    			break
    		}
    		sl += rl
    		ss = string(r) + ss
    	}
    	return ss
    }
    
    #正序截取
    func show_substr(s string, l int) string {
    	if len(s) <= l {
    		return s
    	}
    	ss, sl, rl, rs := "", 0, 0, []rune(s)
    	for _, r := range rs {
    		rint := int(r)
    		if rint < 128 {
    			rl = 1
    		} else {
    			rl = 2
    		}
    
    		if sl + rl > l {
    			break
    		}
    		sl += rl
    		ss += string(r)
    	}
    	return ss
    }
    

      

  • 相关阅读:
    get post 小结
    ddt 实例
    通俗大白话来理解TCP协议的三次握手和四次断开
    find xss
    use . adb . get wifi
    http bass
    mac 配置homebrew
    id 与 void * 转换
    Maven
    percent-encode 百分号编码
  • 原文地址:https://www.cnblogs.com/zipon/p/13674839.html
Copyright © 2011-2022 走看看