当前位置: 技术文章>> 100道Go语言面试题之-Go的strings包提供了哪些实用的字符串处理函数?
文章标题:100道Go语言面试题之-Go的strings包提供了哪些实用的字符串处理函数?
Go语言的`strings`包提供了丰富的字符串处理函数,这些函数在处理文本数据时非常实用。以下是一些主要的字符串处理函数及其简要说明:
### 1. 查找和判断
* **Contains(s, substr string) bool**:判断字符串s中是否包含子串substr。
* **ContainsAny(s, chars string) bool**:判断字符串s中是否包含字符串chars中的任意字符。
* **ContainsRune(s string, r rune) bool**:判断字符串s中是否包含Unicode码点r。
* **HasPrefix(s, prefix string) bool**:判断字符串s是否以prefix开头。
* **HasSuffix(s, suffix string) bool**:判断字符串s是否以suffix结尾。
* **Index(s, substr string) int**:返回子串substr在字符串s中第一次出现的位置,未找到则返回-1。
* **IndexAny(s, chars string) int**:返回字符串chars中的任意字符在字符串s中第一次出现的位置,未找到或chars为空则返回-1。
* **IndexRune(s string, r rune) int**:返回字符r在字符串s中第一次出现的位置,未找到则返回-1。
* **LastIndex(s, substr string) int**:返回子串substr在字符串s中最后一次出现的位置,未找到则返回-1。
* **LastIndexAny(s, chars string) int**:返回字符串chars中的任意字符在字符串s中最后一次出现的位置,未找到或chars为空则返回-1。
### 2. 修改和转换
* **Replace(s, old, new string, n int) string**:将字符串s中的前n个old子串替换为new,如果n为-1则替换所有。
* **Repeat(s string, count int) string**:将字符串s重复count次并返回结果。
* **ToLower(s string) string**:将字符串s中的所有字符转换为小写。
* **ToUpper(s string) string**:将字符串s中的所有字符转换为大写。
* **TrimSpace(s string) string**:去除字符串s首尾的空白字符(如空格、换行符等)。
* **Trim(s, cutset string) string**:去除字符串s首尾的cutset指定的字符集合中的字符。
* **TrimLeft(s, cutset string) string**:去除字符串s左边的cutset指定的字符集合中的字符。
* **TrimRight(s, cutset string) string**:去除字符串s右边的cutset指定的字符集合中的字符。
### 3. 分割和拼接
* **Split(s, sep string) []string**:以sep为分隔符,将字符串s分割成多个子串,结果中不包含sep本身。
* **SplitAfter(s, sep string) []string**:以sep为分隔符,将字符串s分割成多个子串,结果中包含sep本身。
* **SplitN(s, sep string, n int) []string**:以sep为分隔符,将字符串s分割成多个子串,但最多分割出n个子串,结果中不包含sep本身。
* **SplitAfterN(s, sep string, n int) []string**:以sep为分隔符,将字符串s分割成多个子串,但最多分割出n个子串,结果中包含sep本身。
* **Join(a []string, sep string) string**:使用sep作为分隔符,将a中的字符串元素连接成一个新的字符串。
### 4. 其他
* **Count(s, substr string) int**:计算字符串substr在字符串s中出现的非重叠次数。
* **EqualFold(s, t string) bool**:不区分大小写地比较两个字符串s和t是否相等。
这些函数覆盖了字符串处理中的大部分常见需求,如查找、替换、分割、拼接、转换等,是Go语言进行文本处理时不可或缺的工具。