golang Strings包使用总结

 更新时间:2021年03月22日 11:22:17   作者:江湖夜雨十年灯丶  
Go语言在处理字符串时,strings包提供了丰富的函数,如常用的strings.Contains检查是否包含子串,strings.Join拼接字符串数组,strings.Split切割字符串等,熟悉这些函数能有效提高编程效率,尤其是在算法竞赛或笔试题中

golang Strings包使用问题

最近做笔试题的时候经常会碰到输入花了很久时间的问题,就想记录一下。

这个对做字符串类型的题有极大的帮助。

Strings包

package main

import (
	"fmt"
	"strings"
)

func main() {
	// 判断一个字符串是否在另一个字符串中
	contains := strings.Contains("substr", "s")
	fmt.Println(contains) // true

	// 判断一个字符串是否存在另一个字符串的任意字符
	any := strings.ContainsAny("kaka", "nihao")
	fmt.Println(any) // true

	// 把一个字符串转小写
	lower := strings.ToLower("KAKA")
	fmt.Println(lower) // kaka

	// 把一个字符串转大写
	upper := strings.ToUpper("kaka")
	fmt.Println(upper) // kaka

	//判断两个字符串是否相同(无视大小写)
	equal := strings.EqualFold("hello", "Hello")
	fmt.Println(equal) //true

	//判断是否含有前缀,区分大小写
	prefix := strings.HasPrefix("hello", "he")
	fmt.Println(prefix) //true

	//判断是否含有后缀,区分大小写
	suffix := strings.HasSuffix("hello", "llo")
	fmt.Println(suffix) //true

	//统计子串出现的次数
	count := strings.Count("hello", "l")
	fmt.Println(count) //2

	// 判断一个字符串在另一个字符串第一次出现的位置,不存在返回-1
	index := strings.Index("Hello World", "or")
	fmt.Println(index) // 7

	//判断一个字符串中的任意一个字符在另一个字符串第一次出现的位置,不存在返回-1
	indexany := strings.IndexAny("hello", "abcde")
	fmt.Println(indexany) //1

	//判断一个字符串最后出现的位置,不存在返回-1	同样有any不再赘述
	lastindex := strings.LastIndexAny("hello", "l")
	fmt.Println(lastindex)

	//替换
	replace := strings.Replace("hello", "h", "k", -1)
	fmt.Println(replace) //kello

	//去掉前后端的指定字符
	trim := strings.Trim("!!hel!lo!", "!")
	fmt.Println(trim) //hel!lo

	//去掉指定前缀
	trimprefix := strings.TrimPrefix("hello", "he")
	fmt.Println(trimprefix) //llo

	//去掉指定后缀
	trimsuffix := strings.TrimSuffix("hello", "llo")
	fmt.Println(trimsuffix) //he

	//按照空格切分字符串,返回切片
	field := strings.Fields("i am jack")
	fmt.Println(field) //[i am jack]

	//按照指定字符分割字符串,返回切片
	split := strings.Split("hello,i am jack", ",")
	fmt.Println(split) //[hello i am jack]

	//按照指定字符分割字符串,分割至指定位置,返回切片
	splitN := strings.SplitN("hello,i,am,jack", ",", 2)
	fmt.Println(splitN) //[hello i,am,jack]

	//不去掉,带着逗号分割
	splitafter := strings.SplitAfter("hello,i,am,jack", ",")
	fmt.Println(splitafter) //[hello, i, am, jack]

	//将字符串切片合并成一个字符串,可以插入指定分隔符
	join := strings.Join([]string{"I", "am", "jack"}, ",")
	fmt.Println(join) //I.am.jack

	//拼接字符串
	var build strings.Builder
	build.WriteString("abc")
	build.WriteByte(65)
	fmt.Println(build.String()) //abcA
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Go语言构建RESTful API服务

    基于Go语言构建RESTful API服务

    在实际开发项目中,你编写的服务可以被其他服务使用,这样就组成了微服务的架构;也可以被前端调用,这样就可以前后端分离。那么,本文主要介绍什么是 RESTful API,以及 Go 语言是如何玩转 RESTful API 的
    2021-07-07
  • k8s容器互联-flannel host-gw原理篇

    k8s容器互联-flannel host-gw原理篇

    这篇文章主要为大家介绍了k8s容器互联-flannel host-gw原理篇,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Go语言读取文本文件的三种方式总结

    Go语言读取文本文件的三种方式总结

    工作中时不时需要读取文本,文本文件是最常见的文件类型。本文将利用Go语言从逐行、逐个单词和逐个字符三个方法读取文件,感兴趣的可以了解一下
    2023-01-01
  • 详解GO语言中[]byte与string的两种转换方式和底层实现

    详解GO语言中[]byte与string的两种转换方式和底层实现

    这篇文章主要为大家详细介绍了GO语言中[]byte与string的两种转换方式和底层实现的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以参考下
    2024-03-03
  • Golang 实现Socket服务端和客户端使用TCP协议通讯

    Golang 实现Socket服务端和客户端使用TCP协议通讯

    这篇文章主要介绍了Golang 实现Socket服务端和客户端使用TCP协议通讯,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 从基础到高级全方位解析Go中反射的应用

    从基础到高级全方位解析Go中反射的应用

    本文我们将全面深入地探讨Go语言的反射机制,从反射的基础概念、为什么需要反射,到如何在Go中实现反射,以及在高级编程场景如泛型编程和插件架构中的应用,需要的可以参考下
    2023-10-10
  • go zero微服务框架logx日志组件剖析

    go zero微服务框架logx日志组件剖析

    这篇文章主要为大家介绍了go zero微服务框架logx日志组件剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Golang基于文件魔数判断文件类型的案例代码

    Golang基于文件魔数判断文件类型的案例代码

    这篇文章主要介绍了Golang基于文件魔数判断文件类型,本文介绍了基于文件魔数判断文件类型的方法,主要涉及如何ReadSeek读取文件指定字节内容,然后介绍文件魔数,最后给出示例基于魔数判断文件类型,需要的朋友可以参考下
    2023-02-02
  • Go 语言数据结构如何实现抄一个list示例详解

    Go 语言数据结构如何实现抄一个list示例详解

    这篇文章主要为大家介绍了Go 语言数据结构如何实现抄一个list示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Go使用sync.Map来解决map的并发操作问题

    Go使用sync.Map来解决map的并发操作问题

    在 Golang 中 map 不是并发安全的,sync.Map 的引入确实解决了 map 的并发安全问题,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-10-10

最新评论