go语言学习笔记 — 基础 — 基本数据类型 — 字符串(4):字符串分割,获取字符串的某段子串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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值