golang_strings:trim分割“/“出现的坑及解决办法

问题描述

strings.Trim和strings.TrimLeft在分割带有“https://”的字符串时,会多分割一些字符,对分割结果造成影响。

推测原因:
TrimLeft 只针对utf-8字符进行处理,相关处理可能出现问题。// todo源码没看太懂,哪位大佬明白的可以帮忙解释下

解决办法

测试代码如下:

package main

import (
	"fmt"
	"strings"
)

// TrimLeft和Trim分割字符串时,对于有"/"的字符串切割会出现问题
// 切割前缀使用TrimPrefix,切割后缀使用TrimSuffix进行代替
func main() {
	Url := "https://www.baidu.com/material/list"
	fmt.Println(strings.TrimLeft(Url, "https://www.baidu.com"))   // erial/list
	fmt.Println(strings.TrimPrefix(Url, "https://www.baidu.com")) // /material/list

	Url2 := ":www.baidu.com/material/list"
	fmt.Println(strings.Trim(Url, "https://www.baidu.com")) // erial/l
	fmt.Println(strings.Trim(Url2, ":www.baidu.com"))       // /material/list

	s := "Goodbye,, world!"
	fmt.Println(strings.TrimSuffix(s, ", world!")) // Goodbye,
}


版权声明:本文为weixin_43851310原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。