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 && bs[i] <= 127:
return string(bs[:i+1])
case bs[i] >= 128 && bs[i] <= 191:
bl++;
case bs[i] >= 192 && bs[i] <= 253:
cl := 0
switch {
case bs[i] & 252 == 252:
cl = 6
case bs[i] & 248 == 248:
cl = 5
case bs[i] & 240 == 240:
cl = 4
case bs[i] & 224 == 224:
cl = 3
default:
cl = 2
}
if bl+1 == cl {
return string(bs[:i+cl])
}
return string(bs[:i])
}
}
return ""
}
希望本文所述对大家的Go语言程序设计有所帮助。
相关推荐
-
Golang编程实现删除字符串中出现次数最少字符的方法
本文实例讲述了Golang编程实现删除字符串中出现次数最少字符的方法.分享给大家供大家参考,具体如下: 描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd 代码实现: 复制代码 代码如下: package huawei impo
-
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语言写入字符串到文件的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import "fmt" import "os" func main() { fileName := "test.dat" dstFile,err := os.Create(fileName) if err!=nil{ fmt.Println(err.Error())
-
go语言按显示长度截取字符串的方法
本文实例讲述了go语言按显示长度截取字符串的方法.分享给大家供大家参考.具体分析如下: 根据显示长度截取字符串,之前php用的utf8编码,10个英文和10个汉字的显示长度差距太大,按字节截取的话又会出错出现截取半个汉字的情况,所以写了这两个函数. 这两天在折腾golang,所以就用golang重写了着连个函数.代码如下: 复制代码 代码如下: package main import ( "fmt" ) func main() { fmt.Println(show_st
-
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语言常用字符串处理方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import ( "fmt" "strings" //"unicode/utf8" ) func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法")
-
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
-
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语言对字符串进行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语言截取字符串函数用法
本文实例讲述了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
随机推荐
- jquery实现图片跟随鼠标的实例
- linux find命令之xargs简单概述
- 解析centos中Apache、php、mysql 默认安装路径
- jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
- apache 配置成滚动日志的方法
- ASP.NET中 Panel 控件的使用方法
- javascript实现表格增删改操作实例详解
- asp.net中TextBox只能输入数字的最简洁的两种方法
- 通过mysqladmin远程管理mysql的方法
- php制作unicode解码工具(unicode编码转换器)代码分享
- 微信小程序实现登录页云层漂浮的动画效果
- 写给浮躁的IT同仁
- 用vbscript实现从后到前阅读一个文本文件
- sql中varchar和nvarchar的区别与使用方法
- Nginx下修改WordPress固定链接导致无法访问的问题解决
- Android进程通信之Messenger和AIDL使用详解
- ASP.NET 2.0中预设的cookie
- Hbuilder连远程接服务器上传代码的图文教程
- sql server中的任务调度与CPU深入讲解
- Ubuntu虚拟机下使用cutecom进行串口通信的方法