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
}

### 回答1: 在 Go 中,你可以使用 `==` 运算符来判断两个字符串是否完全匹配。例如: ``` s1 := "Hello, World" s2 := "Hello, World" if s1 == s2 { fmt.Println("The strings are equal.") } else { fmt.Println("The strings are not equal.") } ``` 上面的代码会输出 "The strings are equal.",因为两个字符串完全匹配。 注意,这种方法只能用于比较两个字符串的完全匹配,如果你想要进行模糊匹配(例如,忽略大小写,或者只匹配字符串的一部分),你可以使用 Go 的内置函数 `strings.EqualFold()` 或 `strings.Contains()`。 例如: ``` s1 := "Hello, World" s2 := "hello, world" if strings.EqualFold(s1, s2) { fmt.Println("The strings are equal (ignoring case).") } else { fmt.Println("The strings are not equal.") } if strings.Contains(s1, "World") { fmt.Println("s1 contains the string 'World'.") } ``` 上面的代码会输出 "The strings are equal (ignoring case)." 和 "s1 contains the string 'World'."。 ### 回答2: golangstrings提供了多种方法来处理字符串,其中括字符串的完全匹配。 要判断一个字符串是否与另一个字符串完全匹配,可以使用strings中的Equal方法。这个方法接收两个字符串作为参数,并返回一个布尔值,表示这两个字符串是否完全相同。 下面是一个使用Equal方法判断字符串是否完全匹配的示例代码: ```go package main import ( "fmt" "strings" ) func main() { str1 := "Hello" str2 := "Hello" if strings.EqualFold(str1, str2) { fmt.Println("字符串完全匹配") } else { fmt.Println("字符串不完全匹配") } } ``` 在这个示例中,我们定义了两个字符串变量str1和str2,并将它们分别赋值为"Hello"。然后,我们使用Equal方法判断这两个字符串是否完全匹配。如果它们完全相同,我们就打印"字符串完全匹配",否则打印"字符串不完全匹配"。 在实际应用中,字符串的完全匹配可以用于判断用户输入是否与特定字符串相等,或者判断两个字符串是否相同等场景。使用strings中的Equal方法,我们可以方便地实现这一功能。 ### 回答3: 在Golang中,可以使用strings中的函数来进行字符串的完全匹配。具体而言,可以使用strings中的EqualFold函数来判断两个字符串是否在不区分大小写的情况下完全匹配。 EqualFold函数的用法是:strings.EqualFold(str1, str2),其中str1和str2分别是要比较的两个字符串。如果两个字符串在不区分大小写的情况下完全匹配,该函数将返回true,否则将返回false。 除了EqualFold函数之外,还可以使用等号直接比较两个字符串,比如str1 == str2。这种方式只有当两个字符串完全相同(括大小写)时才返回true,否则返回false。 需要注意的是,strings中提供的函数只能进行简单的字符串比较,不能进行更为复杂的匹配操作。如果需要进行更复杂的匹配,可能需要使用正则表达式或其他相关的工具。 总之,在Golang中,可以使用strings.EqualFold函数或直接使用等号来判断两个字符串是否完全匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值