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语言程序设计有所帮助。
相关推荐
-
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语言转换所有字符串为大写或者小写的方法.分享给大家供大家参考.具体如下: 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" "strings" //"unicode/utf8" ) func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法")
-
Golang编程实现删除字符串中出现次数最少字符的方法
本文实例讲述了Golang编程实现删除字符串中出现次数最少字符的方法.分享给大家供大家参考,具体如下: 描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd 代码实现: 复制代码 代码如下: package huawei impo
-
Go语言使用字符串的几个技巧分享
一.字符串底层就是一个字节数组 这真的非常重要,而且影响着下面的其他几个技巧.当你创建一个字符串时,其本质就是一个字节的数组.这意味着你可以像访问数组一样的访问单独的某个字节.例如,下面的代码逐个打印字符串中的每个字节以及对应字节数组中的每个字节: package main import "fmt" func main() { str := "hello" for i := 0; i < len(str); i++ { fmt.Printf("%b
-
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语言按字节截取字符串的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: // 按字节截取字符串 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如何声明一个多行字符串的变量?使用 ` 来包含即可. package main import ( "fmt" ) func main() { str := `hello world v2.0` fmt.Println(str) } Demo:http://play.golang.org/p/BOL8_SwQ0D 以上所述就是本文的全部内容了,希望大家能够喜欢.
-
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语言写入字符串到文件的方法
本文实例讲述了Go语言写入字符串到文件的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import "fmt" import "os" func main() { fileName := "test.dat" dstFile,err := os.Create(fileName) if err!=nil{ fmt.Println(err.Error())
-
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语言编程中字符串切割方法小结
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
随机推荐
- Android利用ViewPager实现滑动广告板实例源码
- Java定时任务详解
- IE Firefox 使用自定义标签的区别
- 关于js二维数组和多维数组的定义声明(详解)
- JS实现颜色梯度与渐变效果完整实例
- 详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
- ASP.Net 分页控件源码
- 探究Python中isalnum()方法的使用
- Python实现遍历目录的方法【测试可用】
- SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法
- Linux shell中的printf的详细用法
- 批处理(dos/bat)最完整人性化教程第1/2页
- mysql连接数设置操作方法(Too many connections)
- 原创jQuery弹出层插件分享
- Android UI使用HTML布局方法实例
- 新站流量一周打造2000IP全攻略
- asp.net DiscuzNT登录,退出的代码
- C#常见应用函数实例小结
- PHP网站自动化配置的实现方法(必看)
- 五步轻松实现JavaScript HTML时钟效果