【go笔记】标准库-strings
标准库-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的更多相关文章
- go学习笔记-标准库
标准库 名称 摘要 archive tar tar包实现了tar格式压缩文件的存取. zip zip包提供了zip档案文件的读写服务. bufio bufio 包实现了带缓存的I/O操作. built ...
- C++ primer笔记 -标准库类型
最重要的两个标准库类型:string和vector string 类型的输入操作符: 1.读取并忽略开头所有的空白符 2.读取字符直至再次遇到空白字符,读取终止 string对象的基本操作: stri ...
- Go笔记-标准库的介绍
[unsafe]包含了一些打破Go语言“类型安全”的命令,一般的程序中不会被使用,可用在C/C++程序的调用中 [syscall]底层的外部包,提供了操作系统底层调用的基本接口 [os/exec]提供 ...
- C++ Primer 笔记——标准库类型string
1.如果使用等号初始化一个变量,实际上执行的是拷贝初始化,编译器吧等号右侧的初始值拷贝到新创建的对象中去:如果不使用等号则执行的是直接初始化. std::string str = "Test ...
- python笔记-标准库unittest
unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 一个TestCase的实例就是一 ...
- 手写编程语言-如何为 GScript 编写标准库
版本更新 最近 GScript 更新了 v0.0.11 版本,重点更新了: Docker 运行环境 新增了 byte 原始类型 新增了一些字符串标准库 Strings/StringBuilder 数组 ...
- 《C++ Primer》学习笔记【第二部分 C++标准库】
第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中 2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...
- PHP标准库 (SPL) 笔记
简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...
- STL笔记(6)标准库:标准库中的排序算法
STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew A ...
- python基础课程_学习笔记20:标准库:有些收藏夹——os
标准库:有些收藏夹 os os模块为您提供访问多个操作系统服务特征. os和它的子模块os.path还包含一些用于检查.构造.删除文件夹和文件的函数,以及一些处理路径的函数. os模块中一些重要函数和 ...
随机推荐
- 使用NineData定制企业级数据库规范
1. 为什么需要数据库规范? 在企业级应用中,数据库是非常重要的一部分,它们存储着公司的核心数据,包括客户信息.订单.产品信息等等.如果这些数据没有得到妥善的管理,那么就会导致数据不一致.数据丢失.数 ...
- Grafana系列-统一展示-6-Zabbix仪表板
系列文章 Grafana 系列文章 Notes: 关于 Grafana系列-统一展示-6-Zabbix 数据源, 其实已经在之前的文章: 使用 Grafana 统一监控展示 - 对接 Zabbix 里 ...
- 2022-11-07:给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。 图用一个大小为 n 下标从 0 开始的数组 edges 表示, 节点 i 到
2022-11-07:给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边. 图用一个大小为 n 下标从 0 开始的数组 edges 表示, 节点 i 到 ...
- 2021-11-27:给定一个数组arr,长度为N,做出一个结构,可以高效的做如下的查询: 1) int querySum(L,R) : 查询arr[L...R]上的累加和; 2) int query
2021-11-27:给定一个数组arr,长度为N,做出一个结构,可以高效的做如下的查询: int querySum(L,R) : 查询arr[L-R]上的累加和; int queryAim(L,R) ...
- JDBC-Utils层的简单运用
项目中JDBC的Utils层运行需要以下六个步骤 //1.定义属性为空 private static String driver = null; private static String url = ...
- Simple CTF
来自tryhackme的Simple CTF IP:10.10.27.234 信息收集 端口扫描 nmap -sV -T4 10.10.27.234 可以看到三个端口 21/tcp 打开 ftp vs ...
- C++面试八股文:static和const的关键字有哪些用法?
某日二师兄参加XXX科技公司的C++工程师开发岗位第7面: 面试官:C++中,static和const的关键字有哪些用法? 二师兄:satic关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量 ...
- ChatGPT玩法(三):AI玩转PPT
前言 在线免费体验ChatGpt:https://www.topgpt.one 作为许多职场人士的必备工具,PPT制作一直是一个琐碎而费时的任务.但最近我发现了一个非常有用的工具网站,它可以通过人工智 ...
- C#/VB.NET:快速而简单的免费SVG到PDF转换技巧
在日常工作中,我们常常需要将SVG转换为PDF格式.这是因为SVG格式的图像在打印时可能会出现问题,例如失去分辨率或无法正确适应纸张大小.与此相比,PDF格式则专门用于打印和共享文档,可以确保高质量输 ...
- @Target元注解的使用
@Target注解标记另外的注解用于限制此注解可以应用哪种Java元素类型.先看Java SE 8中@Target是如何声明的: package java.lang.annotation; publi ...