本文实例讲述了go语言按显示长度截取字符串的方法。分享给大家供大家参考。具体分析如下:
根据显示长度截取字符串,之前php用的utf8编码,10个英文和10个汉字的显示长度差距太大,按字节截取的话又会出错出现截取半个汉字的情况,所以写了这两个函数.
这两天在折腾golang,所以就用golang重写了着连个函数.代码如下:
复制代码 代码如下:package main
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
}
根据字符串显示获取显示长度
复制代码 代码如下: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
}
希望本文所述对大家的Go语言程序设计有所帮助。
更新日志
- 世界启元新手进阶开荒队攻略 首充礼包阵容推荐
- [中友缘唱片]原创音乐《寂寞缠绕DSD》WAV+CUE
- 顶级发烧制作-群星《大牌翻唱1-2》WAV
- 詹姆斯·拉斯特-世界级指挥及演奏大师《天堂鸟Paradiesvogel》[WAV+CUE]
- 吕方 情歌王子《旧情人·老情歌精选 2CD》[WAV+CUE][900MB]
- 邰正宵《用情太深》DSD+SBM版[WAV+CUE][600MB]
- 梅艳芳《绝代芳华》DSD+SBM版[WAV+CUE][600MB]
- 霍正奇.1991-雨的脸我的脸【飞鹰】【WAV+CUE】
- 张雨生.1995-还是朋友【飞碟】【WAV+CUE】
- 艾斯卡尔.2020-祝福【喜洋洋】【WAV+CUE】
- 世界启元巴罗萨怎么样 世界启元巴罗萨介绍
- 世界启元世界进程系统是什么 世界进程系统机制介绍
- 世界启元汉尼怎么样 世界启元汉尼英雄介绍
- 老鹰乐队《加州旅店》1976[FLAC+CUE]
- 清晰稳定的结像聚集《专辑主打我最红》2CD[DTS-WAV]