golang 字符串操作、处理

这篇具有很好参考价值的文章主要介绍了golang 字符串操作、处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、golang的字符串长度 

1. len()内置系统函数,计算字符串结果是字符串的字节长度,不是字符长度

//1.ASCII字符串长度(字节长度)
str1 := "wo ai zhong guo" 
fmt.Println(len(str1)) //15

//2.带中文的字符串长度(字节长度)
str2 := "我爱中国"
fmt.Println(len(str2)) //12   4 * 3字节 = 12字节

2. 计算带中文的字符串长度。 需要将字符串转为 rune类型(int32)

	//带中文的字符串长度
	str1 := "wo ai 中国"
	r := []rune(str1)
	fmt.Println(len(r)) //8

	//也可以使用 utf8.RuneCountInString() 计算携带中文的字符串长度
	num := utf8.RuneCountInString(str1)
	fmt.Println(num) //8

3.为什么字符串带中文,字符长度计算方式不一样?

因为golang默认的字符编码是utf-8,  字符串的底层是 []byte类型,英文及标点符号都是每个占1个字节,中文占3个字节。 len() 函数实际上计算的是 字符串的字节长度。要计算中文长度,那么就得转成rune 或者 通过 utf8.RuneCountInString(str) 来计算。

二、字符串分割成切片,切片拼接成字符串

	//字符串分割
	str1 := "刘备,关羽,张飞"
	s := strings.Split(str1, ",")
	fmt.Println(s) //切片  [刘备 关羽 张飞]

	//切片拼接成字符串
	str2 := strings.Join(s, "-")
	fmt.Println(str2) //字符串 刘备-关羽-张飞

三、字符串查找(字符串中是否存在某些子串)

	//1.字符串中是否存在某些字符
	str := "http://baidu.com/index/index.html"
	b := strings.Contains(str, "http://") //字符串中是否存在 http头
	fmt.Println(b)                        //true

	//2.某个子串 在字符串中有多少个
	count := strings.Count(str, "index")
	fmt.Println(count) //2

	//3.字串在字符串中开始索引位置
	index := strings.Index(str, "bai")
	fmt.Println(index) //7

	//4.字串在字符串中最后一次索引位置
	index = strings.LastIndex(str, "index")
	fmt.Println(index) //23

四、剔除字符串左右空格及左右指定字符

	//1.字符串去左右空格
	str1 := " 野蛮生长 "
	fmt.Println(utf8.RuneCountInString(str1)) //字符长度6
	str := strings.TrimSpace(str1)
	fmt.Println(str)
	fmt.Println(utf8.RuneCountInString(str)) //字符长度4 去掉了左右空格

	//2.去掉左右指定字符
	str2 := "-野蛮生长-"
	str = strings.Trim(str2, "-")
	fmt.Println(str) //野蛮生长

	//3.去掉左侧指定字符
	str3 := "-野蛮生长-"
	str = strings.TrimLeft(str3, "-")
	fmt.Println(str) //野蛮生长-

	//4.去掉右侧指定字符
	str4 := "-野蛮生长-"
	str = strings.TrimRight(str4, "-")
	fmt.Println(str) //-野蛮生长

五、字符串中的某些字符替换

	//1.字符串中某个字符替换掉
	str := "123 + 456 + 789 = ?"
	str1 := strings.Replace(str, "+", "-", 1) //替换掉一个
	fmt.Println(str1)  //123 - 456 + 789 = ?

	str2 := strings.Replace(str, "+", "-", 2) //替换掉两个
	fmt.Println(str2)  //123 - 456 - 789 = ?

	str3 := strings.ReplaceAll(str, "+", "-") //替换掉所有
	fmt.Println(str3)  //123 - 456 - 789 = ?

六、数字字符串转数字(int),int转数字字符串文章来源地址https://www.toymoban.com/news/detail-620254.html

	//1.数字字符串转int
	str1 := "123789ab"
	number1, _ := strconv.Atoi(str1)
	fmt.Println(number1) //0

	str2 := "123789"
	number2, _ := strconv.Atoi(str2)
	fmt.Println(number2) //123789

	//2.int转字符串
	number := 123456
	str := strconv.Itoa(number)
	fmt.Println(str)                 //123789
	fmt.Println(reflect.TypeOf(str)) //string

到了这里,关于golang 字符串操作、处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Go字符串实战操作大全!

    Go字符串实战操作大全!

    在本篇文章中,我们深入探讨了Go语言中字符串的魅力和深度。从基础定义、操作、字符编码到复杂的类型转换,每个环节都带有实例和代码示例来深化理解。通过这些深入的解析,读者不仅能够掌握字符串在Go中的核心概念,还能洞察Go设计哲学背后的思考。 关注公众号【

    2024年02月08日
    浏览(4)
  • 浅谈Golang等多种语言转数组成字符串

    浅谈Golang等多种语言转数组成字符串

    目录 Python 一维列表转字符串 二维列表转字符串 多维列表转字符串 Golang 一维数组的遍历打印 二维数组的遍历打印  Java 一维容器的直接打印 二维容器的直接打印 普通数组的转化 C++ 一维容器的遍历 1. to_string() 2. stringstream 二维容器的遍历 简要小结 python语言中没有普通的数

    2024年02月03日
    浏览(5)
  • go基础09-Go语言的字符串类型

    字符串类型是现代编程语言中最常使用的数据类型之一。在Go语言的先祖之一C语言当中,字符串类型并没有被显式定义,而是以字符串字面值常量或以’\\0’结尾的字符类型(char)数组来呈现的: 这给C程序员在使用字符串时带来一些问题,诸如: ● 类型安全性差; ● 字符

    2024年02月09日
    浏览(7)
  • Golang字符串处理深入解析:探索 strings 标准库的全部方法

    Golang 的 strings 标准库提供了许多用于处理字符串的函数。以下是一些主要的方法: Contains(s, substr string) bool : 检查字符串是否包含子串。 ContainsAny(s, chars string) bool : 检查字符串是否包含字符集中的任何字符。 ContainsRune(s string, r rune) bool : 检查字符串是否包含指定的符文。 C

    2024年02月12日
    浏览(7)
  • go语言int64整型转字符串

    go语言中string(int)会把int当成UTF-8的Unicode值,转换成对应的字符,标准库strconv是专门用来实现基本数据类型和其字符串表示的相互转换。 http://doc.golang.ltd/pkg/strconv.htm

    2024年02月12日
    浏览(8)
  • 为什么说 Go 语言字符串是不可变的?

    原文链接: 为什么说 Go 语言字符串是不可变的? 最近有读者留言说,平时在写代码的过程中,是会对字符串进行修改的,但网上都说 Go 语言字符串是不可变的,这是为什么呢? 这个问题本身并不困难,但对于新手来说确实容易产生困惑,今天就来回答一下。 首先来看看它

    2024年02月07日
    浏览(8)
  • R语言——字符串处理

    R语言——字符串处理

    示例数据:

    2024年02月12日
    浏览(5)
  • 深入解析C语言中的字符串和字符串处理函数

    标题:详解C语言中的字符串和字符串处理函数 目录: 1.引言 2.什么是C语言中的字符串 3.字符串的表示方式 4.C语言中的字符串处理函数 5.例子:使用字符串处理函数的示例代码 6.总结 在C语言中,字符串是一种常见的数据类型,用于存储一串字符。本篇博客将详细介绍C语言中

    2024年02月15日
    浏览(9)
  • Go中字符串处理:fmt.Sprintf与string.Builder的比较

    Go中字符串处理:fmt.Sprintf与string.Builder的比较

    在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用 fmt.Sprintf 函数和 string.Builder 类型。尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区别。 fmt.Sprintf 是一个函数,它根据提供的格式化字符串和参数列表,将它们格式化为

    2024年02月05日
    浏览(4)
  • R语言 | 进阶字符串的处理

    R语言 | 进阶字符串的处理

    目录 一、语句的分割  二、修改字符串的大小写  三、unique()函数的使用  四、字符串的连接 4.1 使用paste()函数常见的失败案例1 4.2 使用paste()函数常见的失败案例2 4.3 字符串的成功连接与collapse参数 4.4 再谈paste()函数 4.5 扑克牌向量有趣的应用 五、字符串数据的顺序 六、查找

    2024年02月02日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包