go語言按顯示長度截取字符串的方法
更新時間:2015年02月24日 12:12:44 作者:不吃皮蛋
這篇文章主要介紹了go語言按顯示長度截取字符串的方法,涉及Go語言操作字符串的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了go語言按顯示長度截取字符串的方法。分享給大家供大家參考。具體分析如下:
根據(jù)顯示長度截取字符串,之前php用的utf8編碼,10個英文和10個漢字的顯示長度差距太大,按字節(jié)截取的話又會出錯出現(xiàn)截取半個漢字的情況,所以寫了這兩個函數(shù).
這兩天在折騰golang,所以就用golang重寫了著連個函數(shù).代碼如下:
復制代碼 代碼如下:
package main
import (
"fmt"
)
func main() {
fmt.Println(show_strlen("哈哈1"))
fmt.Println(show_substr("哈哈1什1么的", 9))
}
import (
"fmt"
)
func main() {
fmt.Println(show_strlen("哈哈1"))
fmt.Println(show_substr("哈哈1什1么的", 9))
}
根絕顯示長度截取字符串
復制代碼 代碼如下:
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
}
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ù)字符串顯示獲取顯示長度
復制代碼 代碼如下:
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
}
sl := 0
rs := []rune(s)
for _, r := range rs {
rint := int(r)
if rint < 128 {
sl++
} else {
sl += 2
}
}
return sl
}
希望本文所述對大家的Go語言程序設計有所幫助。
相關文章
Go結合Gin導出Mysql數(shù)據(jù)到Excel表格
本文主要介紹了Go結合Gin導出Mysql數(shù)據(jù)到Excel表格,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08
Go調(diào)度器學習之goroutine調(diào)度詳解
這篇文章主要為大家詳細介紹了Go調(diào)度器中goroutine調(diào)度的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-03-03
go-micro集成RabbitMQ實戰(zhàn)和原理詳解
本文主要介紹go-micro使用RabbitMQ收發(fā)數(shù)據(jù)的方法和原理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
淺析Golang如何向已關閉的chan讀寫數(shù)據(jù)
這篇文章主要為大家詳細介紹了Golang如何向已關閉的chan讀寫數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02

