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
}

总结

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

相关文章

  • 深入理解Golang中的Protocol Buffers及其应用

    深入理解Golang中的Protocol Buffers及其应用

    本篇文章将深入探讨 Go 语言中使用 Protobuf 的基础知识、常见应用以及最佳实践,希望能帮大家了解如何在项目中高效利用 Protobuf
    2024-11-11
  • golang trace view视图详解

    golang trace view视图详解

    在golang中可以使用go pprof的工具对golang程序进行性能分析,其中通过go trace 命令生成的trace view视图对于我们分析系统延迟十分有帮助,鉴于当前对trace view视图的介绍还是很少,在粗略的看过trace统计原理后,将对这部分做比较详细的介绍
    2023-08-08
  • golang中进行条件编译的示例详解

    golang中进行条件编译的示例详解

    条件编译顾名思义就是在编译时让代码中的一部分生效或者失效,从而控制编译时的代码执行路径,进而影响编译出来的程序的行为,下面我们就来看看如何在golang中进行条件编译吧
    2025-03-03
  • Go语言学习之golang-jwt/jwt的教程分享

    Go语言学习之golang-jwt/jwt的教程分享

    jwt是 json web token的简称。go使用jwt目前,主流使用的jwt库是golang-jwt/jwt。本文就来和大家讲讲golang-jwt/jwt的具体使用,需要的可以参考一下
    2023-01-01
  • 基于golang时间转换的问题

    基于golang时间转换的问题

    下面小编就为大家带来一篇基于golang时间转换的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Golang map实现原理深入分析

    Golang map实现原理深入分析

    map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用,下面这篇文章主要给大家介绍了关于golang中map使用的几点注意事项,需要的朋友可以参考下
    2023-01-01
  •  Go 语言实现 HTTP 文件上传和下载

     Go 语言实现 HTTP 文件上传和下载

    这篇文章主要介绍了Go语言实现HTTP文件上传和下载,文章围绕主题展开详细的内容戒杀,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 深度解密Go语言中字符串的使用

    深度解密Go语言中字符串的使用

    在编程语言中,字符串发挥着重要的角色。这篇文章就来带大家一起深度解密Go语言中的字符串,文中的示例代码讲解详细,需要的可以参考一下
    2022-09-09
  • 6行代码快速解决golang TCP粘包问题

    6行代码快速解决golang TCP粘包问题

    在用golang开发人工客服系统的时候碰到了粘包问题,那么什么是粘包呢?下面这篇文章主要给大家介绍了关于如何通过6行代码快速解决golang TCP粘包问题的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴下面随着小编来一起学习学习吧。
    2018-03-03
  • GO语言实现TCP服务器的示例代码

    GO语言实现TCP服务器的示例代码

    这篇文章主要为大家详细介绍了如何通过GO语言实现TCP服务器,文中的示例代码讲解详细,对我们深入了解Go语言有一定的帮助,需要的可以参考一下
    2023-03-03

最新评论