go語言按顯示長度截取字符串的方法
本文實(shí)例講述了go語言按顯示長度截取字符串的方法。分享給大家供大家參考。具體分析如下:
根據(jù)顯示長度截取字符串,之前php用的utf8編碼,10個(gè)英文和10個(gè)漢字的顯示長度差距太大,按字節(jié)截取的話又會出錯(cuò)出現(xiàn)截取半個(gè)漢字的情況,所以寫了這兩個(gè)函數(shù).
這兩天在折騰golang,所以就用golang重寫了著連個(gè)函數(shù).代碼如下:
import (
"fmt"
)
func main() {
fmt.Println(show_strlen("哈哈1"))
fmt.Println(show_substr("哈哈1什1么的", 9))
}
根絕顯示長度截取字符串
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
}
根據(jù)字符串顯示獲取顯示長度
sl := 0
rs := []rune(s)
for _, r := range rs {
rint := int(r)
if rint < 128 {
sl++
} else {
sl += 2
}
}
return sl
}
希望本文所述對大家的Go語言程序設(shè)計(jì)有所幫助。
相關(guān)文章
通過源碼分析Golang?cron的實(shí)現(xiàn)原理
golang實(shí)現(xiàn)定時(shí)任務(wù)很簡單,只須要簡單幾步代碼即可以完成,最近在做了幾個(gè)定時(shí)任務(wù),想研究一下它內(nèi)部是怎么實(shí)現(xiàn)的,所以將源碼過了一遍,記錄和分享在此。需要的朋友可以參考以下內(nèi)容,希望對大家有幫助2022-10-10Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹
這篇文章主要為大家介紹了Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Go語言高效I/O并發(fā)處理雙緩沖和Exchanger模式實(shí)例探索
這篇文章主要介紹了Go語言高效I/O并發(fā)處理雙緩沖和Exchanger模式實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01