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语言程序设计有所帮助。

(0)

相关推荐

  • Go语言按字节截取字符串的方法

    本文实例讲述了Go语言按字节截取字符串的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: // 按字节截取字符串 utf-8不乱码 func SubstrByByte(str string, length int) string {     bs := []byte(str)[:length]     bl := 0     for i:=len(bs)-1; i>=0; i-- {         switch {         case bs[i] >= 0 &

  • Go语言转换所有字符串为大写或者小写的方法

    本文实例讲述了Go语言转换所有字符串为大写或者小写的方法.分享给大家供大家参考.具体如下: Go语言的string模块包含了ToLower和ToUpper函数,用于将字符串转换成小写和大写 复制代码 代码如下: package main import (   "fmt"   "strings" ) func main() {   fmt.Println(strings.ToUpper("hello world")) } 希望本文所述对大家的Go语

  • Go语言对字符串进行SHA1哈希运算的方法

    本文实例讲述了Go语言对字符串进行SHA1哈希运算的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (  "fmt"  "crypto/md5"  "crypto/sha1"  "io" ) //对字符串进行MD5哈希 func a(data string) string {  t := md5.New();  io.WriteString(t,data);  return

  • Go语言声明一个多行字符串的变量

    Go如何声明一个多行字符串的变量?使用 ` 来包含即可. package main import ( "fmt" ) func main() { str := `hello world v2.0` fmt.Println(str) } Demo:http://play.golang.org/p/BOL8_SwQ0D 以上所述就是本文的全部内容了,希望大家能够喜欢.

  • Go语言中字符串的查找方法小结

    1.func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true 复制代码 代码如下: import (  "fmt"  "strings" ) func main() {  fmt.Println(strings.Contains("widuu", "wi")) //true  fmt.Println(strings.Contains("wi

  • Go语言写入字符串到文件的方法

    本文实例讲述了Go语言写入字符串到文件的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package  main import "fmt" import "os" func main() {     fileName := "test.dat"     dstFile,err := os.Create(fileName)     if err!=nil{         fmt.Println(err.Error())  

  • Golang编程实现删除字符串中出现次数最少字符的方法

    本文实例讲述了Golang编程实现删除字符串中出现次数最少字符的方法.分享给大家供大家参考,具体如下: 描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd 代码实现: 复制代码 代码如下: package huawei impo

  • Go语言实现字符串切片赋值的方法小结

    前言 在所有编程语言中都涉及到大量的字符串操作,可见熟悉对字符串的操作是何等重要.本文通过示例详细介绍了Go语言实现字符串切片赋值的方法,感兴趣的朋友们跟着小编一起来看看吧. 1. 在for循环的range中 func StrRangeTest() { str := []string{"str1", "str2", "str3"} for i, v := range str { fmt.Println(i, v) v = "test&q

  • Go语言截取字符串函数用法

    本文实例讲述了Go语言截取字符串函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: func Substr(str string, start, length int) string {     rs := []rune(str)     rl := len(rs)     end := 0             if start < 0 {         start = rl - 1 + start     }     end = start + length        

  • Go语言使用字符串的几个技巧分享

    一.字符串底层就是一个字节数组 这真的非常重要,而且影响着下面的其他几个技巧.当你创建一个字符串时,其本质就是一个字节的数组.这意味着你可以像访问数组一样的访问单独的某个字节.例如,下面的代码逐个打印字符串中的每个字节以及对应字节数组中的每个字节: package main import "fmt" func main() { str := "hello" for i := 0; i < len(str); i++ { fmt.Printf("%b

  • Go语言对字符串进行MD5加密的方法

    本文实例讲述了Go语言对字符串进行MD5加密的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "crypto/md5"     "fmt"     "io" ) func main() {     h := md5.New()     io.WriteString(h, "welcome to jb51.net")     fmt.Printf(&quo

  • Go语言常用字符串处理方法实例汇总

    本文实例汇总了Go语言常用字符串处理方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "fmt"     "strings"     //"unicode/utf8" ) func main() {     fmt.Println("查找子串是否在指定的字符串中")     fmt.Println(" Contains 函数的用法")    

  • Go语言编程中字符串切割方法小结

    1.func Fields(s string) []string,这个函数的作用是按照1:n个空格来分割字符串最后返回的是 []string的切片 复制代码 代码如下: import (  "fmt"  "strings" ) func main() {  fmt.Println(strings.Fields("hello widuu golang")) //out  [hello widuu golang] } 2.func FieldsFun

随机推荐