go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符串分割,获取字符串的某段子串substring
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符串分割,获取字符串的某段子串substring相关的知识,希望对你有一定的参考价值。
获取字符串的某段子串substring(字符串分割)是开发过程中常见的操作。
1. 字符串搜索常用方法
-
获取全字符串中某个字符的ascii下标。strings.Index():正向搜索子串;strings.LastIndex():反向搜索子串
-
搜索的起始位置可以通过切片偏移操作。strings.Index(string[substring的前一字符:], “substring”),即从substring的前一字符到全字符的末尾,搜索substring首字符的相对ascii位置。然后,使用切片string[绝对位置+相对位置:],获得字符串的某段子串。
2. 使用strings.Index(),在全字符串中正向搜索子串的首字符,返回首字符在全字符串中的ascii下标
package string_test
import (
"fmt"
"strings"
"testing"
)
// 使用strings.Index(),在tracer字符串"死神来了,死神byebye"中搜索子串",",返回","在tracer字符串中的ascii下标
func TestSubstringSearch(t *testing.T) {
tracer := "死神来了,死神byebye"
comma := strings.Index(tracer, ",")
fmt.Println(comma)
}
// 12
3. 使用切片string[绝对位置+相对位置:],获得字符串的某段子串
使用切片,从字符串"死神来了,死神byebye"中的",“的ascii下标开始(绝对位置),一直到字符串结束,构造一个子串”,死神byebye",在这个子串中搜索"死神",返回子串首字符的ascii下标(相对位置)。
然后,使用切片string[绝对位置+相对位置:],获得字符串的某段子串。
package main
import (
"fmt"
"strings"
)
// 返回从第二个死神开始的子串
func main() {
tracer := "死神来了,死神byebye"
comma := strings.Index(tracer, ",") // 使用strings.Index,在字符串"死神来了,死神byebye"中搜索子串",",返回","位置的ascii字符串下标
pos := strings.Index(tracer[comma:], "死神") // 从字符串"死神来了,死神byebye"中的","位置开始,一直到字符串结束,构造一个子串",死神byebye",在这个子串中搜索"死神",返回ascii下标(相对位置)
fmt.Println(comma, pos, tracer[comma+pos:])
// 输出","在tracer字符串的绝对位置,输出"死神"在tracer[comma:]子串的相对位置,利用切片偏移(绝对位置+相对位置)输出子串“死神byebye”
}
// 12 3 死神byebye
以上是关于go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符串分割,获取字符串的某段子串substring的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符
go语言学习笔记 — 基础 — 基本数据类型 — 原生数据类型:布尔型数字类型(整型与浮点型)字符串类型
go语言学习笔记 — 基础 — 基本数据类型 — 字符串(11):go中的字符串
go语言学习笔记 — 基础 — 基本数据类型 — 类型类别:值类型和引用类型