标准库-strings

前言

标准库strings用于处理utf-8编码的字符串。

字符串比较-Compare

func Compare(a,b string) int
  • 若 a==b ,则返回0;若 a <b ,则返回 -1;若 a>b ,则返回 1。
  • 字符串的比较方法是根据单个字符的ASCII编码。

示例代码:

package main
import (
"fmt"
"strings"
) func main() {
var str1 string = "hello"
var str2 string = "world" fmt.Println(strings.Compare(str1,str2)) // -1
fmt.Println(strings.Compare(str2,str1)) // 1
fmt.Println(strings.Compare(str1,str1)) // 0
}

检测字符串是否包含子串-Contains

func Contains(s,substr string) bool

示例代码:

package main
import (
"fmt"
"strings"
) func main() {
fmt.Println(strings.Contains("hello world","hello")) // true
fmt.Println(strings.Contains("hello world","hel123")) // false
}

大小写转换

函数原型:

func ToUpper(substr string) string
func ToLower(substr string) string
func ToTitle(substr string) string

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = "heLLo, goLang"
fmt.Println(strings.ToUpper(str1)) // HELLO, GOLANG
fmt.Println(strings.ToLower(str1)) // hello, golang
fmt.Println(strings.ToTitle(str1)) // HELLO, GOLANG
}

统计子字符串出现的次数

函数原型:

func Count(str,substr string) int

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = "heLLo, goLang"
var str2 string = "o"
fmt.Println(strings.Count(str1,str2))
}

判断字符串的前后缀

函数原型:

func HasPrefix(str,substr string) bool
func HasSuffix(str,substr string) bool

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = "heLLo, goLang"
var str2 string = "o"
var str3 string = "he"
var str4 string = "Lang"
fmt.Println(strings.HasPrefix(str1, str2)) // false
fmt.Println(strings.HasPrefix(str1, str3)) // ture
fmt.Println(strings.HasSuffix(str1, str4)) // ture
}

分割和连接

函数原型:

func Split(str,separator string) []string
func Join(strs []string) string

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = "heLLo,goLang"
fmt.Println(strings.Split(str1, ",")) // [heLLo goLang]
for _,v := range strings.Split(str1, ",") {
fmt.Println(v)
} fmt.Println(strings.Join([]string{"Hello","Golang","World"}, "、")) // Hello、Golang、World
}

索引

这个操作能获取指定字符首次出现的位置,通常用来判断子字符串在对应字符串中的位置。

函数原型:

func Index(str,substr string) int

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = "heLLo,goLang"
fmt.Println(strings.Index(str1, "LL")) // 2
}

清洗

清洗操作可以将字符串两端的一些字符删掉,常用来删除字符串两端的空格。

函数原型:

func Trim(s, cutset string) string
func TrimLeft(s, cutset string) string
func TrimRight(s, cutset string) string
func TrimPrefix(s, prefix string) string
func TrimSuffix(s, suffix string) string
func TrimSpace(str string) string

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = " heLLo,goLang "
var str2 string = "123heLLo,goLang123"
fmt.Println(strings.Trim(str1, " ")) // heLLo,goLang
fmt.Println(strings.Trim(str2, "123")) // heLLo,goLang
// 专门用来清除两端空格的函数
fmt.Println(strings.TrimSpace(str1)) // heLLo,goLang
}

替换

清洗操作只能完成首尾的空格或者指定字符的替换,要完成更为复杂的操作则要调用NewReplacer()函数。

函数原型:

func Replace(s, old, new string, n int) string {}
func NewReplacer(oldnew ...string) *Replacer

示例代码:

package main

import (
"fmt"
"strings"
) func main() {
var str1 string = " heLLo,goLang "
newReplacer1 := strings.NewReplacer(" ","++", ",", "==") // ++++heLLo==goLang++++
fmt.Println(newReplacer1.Replace(str1))
}

参考文章

  • 官方文档
  • 谢伟 - 《Go语言项目开发上手指南》机械工业出版社

【go笔记】标准库-strings的更多相关文章

  1. go学习笔记-标准库

    标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取. zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. built ...

  2. C++ primer笔记 -标准库类型

    最重要的两个标准库类型:string和vector string 类型的输入操作符: 1.读取并忽略开头所有的空白符 2.读取字符直至再次遇到空白字符,读取终止 string对象的基本操作: stri ...

  3. Go笔记-标准库的介绍

    [unsafe]包含了一些打破Go语言“类型安全”的命令,一般的程序中不会被使用,可用在C/C++程序的调用中 [syscall]底层的外部包,提供了操作系统底层调用的基本接口 [os/exec]提供 ...

  4. C++ Primer 笔记——标准库类型string

    1.如果使用等号初始化一个变量,实际上执行的是拷贝初始化,编译器吧等号右侧的初始值拷贝到新创建的对象中去:如果不使用等号则执行的是直接初始化. std::string str = "Test ...

  5. python笔记-标准库unittest

    unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 一个TestCase的实例就是一 ...

  6. 手写编程语言-如何为 GScript 编写标准库

    版本更新 最近 GScript 更新了 v0.0.11 版本,重点更新了: Docker 运行环境 新增了 byte 原始类型 新增了一些字符串标准库 Strings/StringBuilder 数组 ...

  7. 《C++ Primer》学习笔记【第二部分 C++标准库】

    第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中   2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...

  8. PHP标准库 (SPL) 笔记

    简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...

  9. STL笔记(6)标准库:标准库中的排序算法

    STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew A ...

  10. python基础课程_学习笔记20:标准库:有些收藏夹——os

    标准库:有些收藏夹 os os模块为您提供访问多个操作系统服务特征. os和它的子模块os.path还包含一些用于检查.构造.删除文件夹和文件的函数,以及一些处理路径的函数. os模块中一些重要函数和 ...

随机推荐

  1. Java web文件服务器的简单实现

    先分享一个好用的聚合搜索引擎,https://www.tomfind.com/ ,支持谷歌.百度.搜狗.bing.360一键切换,支持网页.音乐.购物.视频搜索.支持抖音.快手.哔哩哔哩.微信.头条. ...

  2. ASP.NET Response.Filter

    寫 ASP.NET 有時候會想要在畫面輸出前一刻進行攔截,並換掉 html 中的特定字元.例如網站中有許多頁面都有 www.google.com.tw 的超連結,我希望在測試機上可以把連結換成 www ...

  3. 开发 Diffusers 库的道德行为指南

    我们正在努力让我们每次发布的库更加负责! 我们很荣幸宣布我们发布了 道德守则,并将作为一部分其放入  Diffusers 库的说明文档. 由于扩散模型在现实世界上的实际应用例子会对社会造成潜在的负面影 ...

  4. 2023-04-08:社交网络中的最优邀请策略探究。本文以小红准备开宴会为例,提出一种基于贪心算法和二分查找的解决方案,帮助读者在保证愉悦值不低于k的前提下,最小化宴会的阶层差距。

    2023-04-08:小红有n个朋友, 她准备开个宴会,邀请一些朋友, i号朋友的愉悦值为a[i],财富值为b[i], 如果两个朋友同时参加宴会,这两个朋友之间的隔阂是其财富值差值的绝对值, 宴会的隔 ...

  5. 2022-10-31:以下go语言代码输出什么?A:map[];B:nil;C:Panic;D:编译错误。 package main import “fmt“ func main() {

    2022-10-31:以下go语言代码输出什么?A:map[]:B:nil:C:Panic:D:编译错误. package main import "fmt" func main( ...

  6. 2020-10-13:hash与B+tree的区别?

    福哥答案2020-10-13: [答案来自知乎:](https://www.zhihu.com/question/425378511/answer/1522000015) 这里我从数据库索引的层面回答 ...

  7. [vuex] unknown action type:***

    vuex 分模块后使用mapActions调用action老是提示 [vuex] unknown action type:*** 异常 目录 index.js是这样的 import Vue from ...

  8. STM32H5移植zbar记录

    ZBar是一种流行的二维码扫描和解码工具,它在嵌入式系统中拥有广泛的应用.在嵌入式系统中,我们面临着有限的资源和更严格的性能要求,因此,选择适当的库来完成特定的任务非常重要. ZBar适用于各种嵌入式 ...

  9. Python基础 - python解释器

    Python解释器是什么 Python解释器本身也是个程序, 它是解释执行 Python代码的,所以叫解释器. 没有它,我们的Python代码是没有办法运行的. 怎么下载安装Python解释器   官 ...

  10. 文档在线预览(二)word、pdf文件转html以实现文档在线预览

    @[toc] 实现文档在线预览的方式除了上篇文章[<文档在线预览(一)通过将txt.word.pdf转成图片实现在线预览功能>](https://blog.csdn.net/q2qwert ...