【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模块中一些重要函数和 ...
随机推荐
- docker安装es和kibana,单机模式
操作系统:mac系统 1.安装es docker pull elasticsearch:7.14.0 docker run --name es -p 9200:9200 -p 9300:9300 -e ...
- [MAUI程序设计]界面多态与实现
目录 需求一:在不同设备上使用不同 UI 外观 定义控件 UI 外观 基于平台自定义配置 需求二:在不同数据类别中使用不同的 UI 外观 定义视图 UI 外观 创建数据模板 创建选择器 定义数据 需求 ...
- 如何通过Java代码将 PDF文档转为 HTML格式
虽然PDF文件适合用于打印和发布,但不适合所有类型的文档.例如,包含复杂图表和图形的文档可能无法在PDF中呈现得很好.但是HTML文件可以在任何可运行浏览器的计算机上进行阅读并显示.并且HTML还具有 ...
- 三分钟免费将 Claude API 接入个人服务
首先我们介绍一下今天的主角 Claude Claude 是最近新开放的一款 AI 聊天机器人,是世界上最大的语言模型之一,比之前的一些模型如 GPT-3 要强大得多,因此 Claude 被认为是 Ch ...
- 公路堵车概率模型Python(Nagel-Schreckenberg交通流模型)
路面上有N辆车,以不同速度向前行驶,模拟堵车问题.有以下假设: 假设某辆车的当前速度是 v 如果 前方可见范围内没车,下一秒车速提高到 v+1 如果 前方有车,前车的距离为 d ,且 d < v ...
- shell编程-提取IP地址
1.使用cut文本处理工具提取 [root@hadoop129 scripts]# ifconfig ens33 | grep netmask | cut -d " " -f 10 ...
- 19.详解AQS家族的成员:CountDownLatch
关注王有志,一个分享硬核Java技术的互金摸鱼侠 欢迎你加入Java人的提桶跑路群:共同富裕的Java人 今天我们来聊一聊AQS家族中的另一个重要成员CountDownLatch.关于CountDow ...
- 从零开始整SpringBoot-工具与插件
工具 工具 名称 地址 IDEA https://www.jetbrains.com/idea/ JDK1.8 https://www.oracle.com/java/technologies/jav ...
- JavaScript 整理的基础的方法
innerHTML //innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML. innertext//innerText 属性返回文本值 没有结构信息 $("#test& ...
- AWVS——自动化检测发现漏洞
AWVS简介 *AWVS作为一个工具,不可能把所有漏洞扫描出来,仅仅是作为一个渗透网站时的辅助工具 自动化Web漏洞扫描工具(基于漏洞匹配方法,通过网络爬虫测试网站安全) AWVS通过SQL注入攻击. ...