分享
  1. 首页
  2. 文章

golang按显示长度截取字符串

DarkWingBoy · · 9613 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

根据显示长度截取字符串,之前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
}

有疑问加站长微信联系(非本文作者)

本文来自:ITEYE博客

感谢作者:DarkWingBoy

查看原文:golang按显示长度截取字符串

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
9613 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏