go语言按显示长度截取字符串的方法

 更新时间:2015年02月24日 12:12:44   作者:不吃皮蛋  
这篇文章主要介绍了go语言按显示长度截取字符串的方法,涉及Go语言操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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语言程序设计有所帮助。

相关文章

  • 通过源码分析Golang cron的实现原理

    通过源码分析Golang cron的实现原理

    golang实现定时任务很简单,只须要简单几步代码即可以完成,最近在做了几个定时任务,想研究一下它内部是怎么实现的,所以将源码过了一遍,记录和分享在此。需要的朋友可以参考以下内容,希望对大家有帮助
    2022-10-10
  • Golang高性能持久化解决方案BoltDB数据库介绍

    Golang高性能持久化解决方案BoltDB数据库介绍

    这篇文章主要为大家介绍了Golang高性能持久化解决方案BoltDB数据库介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • go语言实现AES加密的方法

    go语言实现AES加密的方法

    这篇文章主要介绍了go语言实现AES加密的方法,实例分析了Go语言的加密技巧,需要的朋友可以参考下
    2015-03-03
  • 一篇文章带你轻松搞懂Golang的error处理

    一篇文章带你轻松搞懂Golang的error处理

    在进行后台开发的时候,错误处理是每个程序员都会遇到的问题,下面这篇文章主要给大家介绍了关于Golang中error处理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Go调用链可视化工具使用实例探究

    Go调用链可视化工具使用实例探究

    本文介绍一款工具 go-callvis,它能够将 Go 代码的调用关系可视化出来,并提供了可交互式的 web 服务,在接手他人代码或调研一些开源项目时,如果能够理清其中的代码调用链路,这将加速我们对实现的理解
    2024-01-01
  • go doudou应用中使用枚举类型教程示例

    go doudou应用中使用枚举类型教程示例

    这篇文章主要为大家介绍了go doudou应用中使用枚举类型教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Go语言高效I/O并发处理双缓冲和Exchanger模式实例探索

    Go语言高效I/O并发处理双缓冲和Exchanger模式实例探索

    这篇文章主要介绍了Go语言高效I/O并发处理双缓冲和Exchanger模式实例探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 浅谈go语言中别名类型的使用

    浅谈go语言中别名类型的使用

    类型别名是 Go 1.9 版本添加的新功能,主要用于解决代码升级、迁移中存在的类型兼容性问题,本文主要介绍了go语言中别名类型的使用,感兴趣的可以了解一下
    2024-01-01
  • 一文详解Golang中new和make的区别

    一文详解Golang中new和make的区别

    在Go语言中,new和make是两个用于创建对象的内建函数。本文将详细介绍new和make的区别,并通过多个方面的分析和代码示例,帮助大家理解它们的使用场景
    2023-05-05
  • 通过与Java功能上的对比来学习Go语言

    通过与Java功能上的对比来学习Go语言

    这篇文章主要介绍了通过与Java功能上的对比来学习Go语言的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论