- 博客(114)
- 收藏
- 关注
原创 strings.Replacer 使用详解
一次编译多次使用:适合规则固定的高频替换;零分配设计:对 GC 压力极低;算法自适应:自动选择最优实现;Replacer用替换项替换字符串列表。多个goroutine并发使用是安全的。
2025-05-10 14:00:00
677
原创 strings.Reader 使用详解
接口兼容:完美适配所有标准 IO 接口;零内存分配:比 bytes.Buffer 更轻量;随机访问:支持 Seek() 跳转读取位置;Reader通过读取字符串来实现io.Reader、io.ReaderAt、io.ByteReader、io.Byte Scanner、io.RuneReader、io.Rune Scanner、io.Seeker和io.WriterTo接口。Reader的零值就像空字符串的Reader一样。
2025-05-10 09:00:00
808
原创 strings.Builder 使用详解
strings.Builder 是 Go 字符串处理的性能标杆;比传统拼接快 2-3 个数量级;Grow() 避免动态扩容开销;String() 无额外内存拷贝;超过 3 次拼接就用 Builder;总是优先用 WriteString 而非 Write;循环前必须调用 Grow 预分配;Builder用于使用Builder高效地构建字符串。编写方法。它最大限度地减少了内存复制。零值已准备好使用。不要复制非零的生成器。
2025-05-09 14:00:00
1784
原创 strings.TrimSuffix 使用详解
比手动切片更安全;比正则表达式更高效;比字符集合匹配更精确;TrimSuffix返回s,不带提供的尾随后缀字符串。如果s不以后缀结尾,则s将原封不动地返回。
2025-05-09 09:00:00
799
原创 strings.TrimSpace 使用详解
开箱即用,覆盖所有常见空白字符场景;正确处理多语言文本;高性能无内存开销;TrimSpace返回字符串s的一个片段,删除所有前导和尾随空格,如Unicode所定义;strings.TrimSpace 是处理文本首尾空白的黄金标准工具,在 99% 的空白字符清理场景中应作为首选。仅在需要特殊空白字符定义或局部删除时考虑其他方案
2025-05-08 14:00:00
2193
原创 strings.TrimRightFunc 使用详解
正确识别多字节字符(中文、emoji 等);可混合判断数字、标点、空格等属性;纯函数无副作用;从字符串 s 的右侧(末尾)连续删除满足函数 f(rune) bool 条件的 Unicode 字符,直到遇到第一个不满足条件的字符为止;TrimRightFunc 是处理现代文本的“智能剪刀”,在需要 Unicode 感知和复杂条件时不可替代,但对简单场景略显重量级。根据需求在灵活性和性能间权衡选择
2025-05-08 09:00:00
822
原创 strings.TrimRight 使用详解
针对固定字符集的右侧删除场景性能最优;直接传入字符集,无需额外逻辑;从字符串 s 的右侧(末尾)连续删除包含在 cutest 中的任意字符,直到遇到第一个不在 cutest 中的字符为止;TrimRight 是右侧字符集裁剪的“精准剪刀”,适合简单固定规则的高效处理;灵活需求请换用 TrimRightFunc 或 TrimSuffix
2025-05-07 14:00:00
664
原创 strings.TrimPrefix 使用详解
从字符串 s 的开头删除完全匹配的 prefix 字符串;若 s 不以 prefix 开头,则返回原字符串;大小写敏感;严格按完整前缀字符串删除,避免误删;底层优化比手动切片更快;自动处理空字符串和越界情况;TrimPrefix 是处理字符串前缀的“精准手术刀”,适合需要完全匹配的高效场景;灵活需求请换用 TrimLeft 或 TrimLeftFunc
2025-05-07 09:00:00
902
原创 strings.TrimLeftFunc 使用详解
从字符串 s 的左侧(开头)连续删除满足函数 f(rune) bool 条件的 Unicode 字符,直到遇到第一个不满足条件的字符为止;支持任意复杂的字符判断逻辑;正确处理多字节字符;可通过函数组合实现复杂条件
2025-04-27 09:00:00
1592
原创 strings.TrimLeft 使用详解
TrimLeft 是左侧字符集裁剪的“精准手术刀”,适合简单固定规则的高效处理;灵活需求请换 TrimLeftFunc;TrimLeft返回字符串s的一个片段,其中删除了剪切集中包含的所有前导Unicode码点。要删除前缀,请改用TrimPrefix。
2025-04-26 14:00:00
761
原创 strings.TrimFunc 使用详解
从字符串 s 的首尾两端连续删除满足函数 f(rune) bool 条件的 Unicode 字符,直到遇到第一个不满足条件的字符为止。支持任意 Unicode 字符的条件判断;自动处理多个字节字符(如中文、emoji);需要动态裁剪规则时优先使用 TrimFunc
2025-04-26 09:00:00
916
原创 strings.Trim 使用详解
Trim返回字符串s的一个片段,其中删除了片段集中包含的所有前导和尾随Unicode码点。核心价值:高效去除固定字符集的首尾字符;局限性:无法处理动态模式或多字符序列;时间复杂度:O(n)(最坏情况需扫描整个字符串);内存:零分配(直接返回原字符串的子切片)
2025-04-23 14:00:00
1340
原创 strings.ToValidUTF8 使用详解
ToValidUTF8返回字符串s的副本,每次运行无效的UTF-8字节序列都会被替换字符串替换,替换字符串可能为空。核心价值:简单可靠的 UTF-8 规范化工具;局限性:无法修复编码错误(如 GBK 误标为 UTF-8);时间复杂度:O(n)(需完整扫描字符串)
2025-04-23 09:00:00
696
原创 strings.ToUpperSpecial 使用详解
根据指定的 unicode.SpecialCase 规则,将字符串 s 中的所有 Unicode 字母转换为大写形式,支持语言特殊规则;解决特定语言的大小写转换异常问题;时间复杂度:O(n)(需遍历每个 rune 并匹配规则);内存:单次分配结果字符串
2025-04-22 14:00:00
739
原创 strings.ToUpper 使用详解
将字符串 s 中的所有 Unicode 字母转换为大写形式,返回新字符串;简单可靠的 Unicode 大写转换;时间复杂度:O(n)(需遍历每个 rune);内存:单次分配结果字符串
2025-04-22 09:00:00
763
原创 strings.ToTitle 使用详解
ToTitle返回字符串s的副本,其中所有Unicode字母都映射到其Unicode标题大小写。历史遗留的全大写转换功能;O(n)(需遍历每个 rune);额外分配结果字符串
2025-04-21 14:00:00
798
原创 strings.ToLowerSpecial 使用详解
解决特定语言的大小写转换异常问题;根据指定的 unicode.SpecialCase 规则,将字符串 s 中的所有 Unicode 字母转换为小写形式,支持语言特殊规则;时间复杂度:O(n)(需遍历每个 rune 并匹配规则);内存:单次分配结果字符串
2025-04-21 09:00:00
925
原创 strings.ToLower 使用详解
简单可靠的 Unicode 大小写转换;将字符串 s 中的所有 Unicode 字母转换为小写形式,返回新字符串;支持多语言字符(如德语 Ä → ä,土耳其语 İ → i);线程安全(返回新字符串,原字符串不变);非字母字符(如数字、符号)保持不变
2025-04-20 14:00:00
1201
原创 strings.SplitN 使用详解
在控制分隔次数的同时避免全量分割;功能与 Split 类似,主要区别在分割控制;将字符串 s 按照分隔符 sep 分割,最多分割成 n 个字符串,若 n < 0,则不限制分割次数(等同于 Split)
2025-04-20 09:00:00
639
原创 strings.SplitAfterN 使用详解
在保留分隔符的同时控制分割次数;功能与 SplitAfter 类似,主要区别在分割控制;将字符串 s 在前 n -1 次出现 sep 分割符的位置之后进行分割,保留分隔符,最后一部分包含剩余未分割内容。若 n < 0 ,则等同于 SplitAfter
2025-04-18 14:00:00
998
原创 strings.SplitAfter 使用详解
需要保留分隔符时的最简洁方案;功能与 Split 类似,仅分隔符处理方式不同;将字符串 s 在每次出现 sep 分隔符之后进行分割,保留分隔符作为子串的一部分。若 sep 为空字符串,则在每个 UTF-8 字符后分割
2025-04-18 09:00:00
972
原创 strings.Split 使用详解
核心价值:简单分割的最优解;局限性:无法处理带引号或转义的分隔符;返回 []string 类型切片;空分隔符会按字符分割;连续分隔符会产生空字符串元素...
2025-04-17 14:00:00
1015
原创 strings.ReplaceAll 使用详解
核心价值:全量替换的最简洁写法;局限性:功能与 Replace 完全相同,仅 API 更友好;ReplaceAll返回字符串s的副本,其中所有不重叠的old实例替换为new。如果old为空,它匹配字符串的开头和每个UTF-8序列之后,为k-rune字符串产生最多k+1个替换。
2025-04-17 09:00:00
1058
原创 strings.Replace 使用详解
简单子串替换的最优解;不支持正则或条件逻辑;支持限制替换次数;线程安全(返回新字符串);Replace返回字符串s的副本,其中旧的前n个不重叠的实例替换为new。如果old为空,它匹配字符串的开头和每个UTF-8序列之后,为k-rune字符串产生最多k+1个替换。如果n < 0,则替换次数没有限制。
2025-04-16 14:00:00
2521
原创 strings.Repeat 使用详解
Repeat返回一个由字符串s的count个副本组成的新字符串。如果count为负或(len(s) * count)的结果溢出,则会产生恐慌。时间复杂度:O(n) (n 为结果字符串长度);局限性:仅适用于完全重复的场景
2025-04-16 09:00:00
753
原创 strings.Map 使用详解
遍历字符串 s 的每个 Unicode 字符(rune),通过 mapping 函数对其进行转换,返回转换后的新字符串。若 mapping 返回负值,则丢弃该字符;时间复杂度:O(n) (需遍历每个 rune 并重组字符串);局限性:函数调用和内存分配导致性能中等
2025-04-15 14:02:15
755
原创 strings.LastIndexFunc 使用详解
返回字符串 s 中最后一个满足函数 f(rune) bool 条件的 Unicode 字符(rune)的字节索引位置,若未找到则返回 -1;灵活支持 Unicode 和自定义匹配逻辑
2025-04-15 09:02:54
762
原创 strings.LastIndexByte 使用详解
核心价值:单字节匹配的最优解,性能极致简化;返回字节 s 在字符串 s 中最后一次出现的字节索引位置;若未找到则返回 -1;精确匹配单个字节(byte 类型,范围 0-255 );高效:专为单字节优化,性能优于多字符匹配函数;局限性:仅支持字节,不直接支持 Unicode
2025-04-14 20:00:00
1732
原创 strings.LastIndexAny 使用详解
LastIndexAny返回s中字符的任何Unicode码点的最后一个实例的索引,如果s中没有字符的Unicode码点,则返回-1;轻量级、无依赖、兼容性强,适合简单字符集匹配;返回字节位置而非字符位置,对多字节字符需谨慎
2025-04-14 15:00:00
1495
原创 strings.LastIndex 使用详解
简单、无需依赖、兼容性极强;快速开发、短文本或固定子串匹配;返回子串 substr 在字符串 s 中最后一次出现的字节索引位置;若未找到则返回 -1
2025-04-13 14:00:00
834
原创 strings.Join 使用详解
最规范的字符串连接方式;自动处理空切片和单元素情况;完美支持 Unicode 和多字节字符;为字符串连接提供最高效且安全的标准实现;避免手动拼接的性能陷阱;Join将其第一个参数的元素连接起来以创建单个字符串。分隔字符串sep放置在结果字符串的元素之间。
2025-04-13 09:00:00
1075
原创 strings.IndexFunc 使用详解
Unicode 字符搜索的标准解决方案;自动处理多字节编码;对 ASCII 字符有快速路径优化;IndexRune返回Unicode码点r的第一个实例的索引,如果rune不在s中,则返回-1。如果r为utf8。RuneError,它返回任何无效UTF-8字节序列的第一个实例
2025-04-12 14:00:00
754
原创 strings.IndexFunc 使用详解
最灵活的字符搜索方式;原生支持 Unicode 字符;运行时开销主要来自函数调用;返回字符串 s 中第一个满足函数 f 条件的 Unicode 字符的索引位置,若未找到则返回 -1
2025-04-12 09:00:00
958
原创 strings.IndexByte 使用详解
返回字节 c 在字符串 s 中第一次出现的位置索引(从 0 开始),若未找到则返回 -1。为单字节搜索提供极致性能;避免字符串与 []byte 的转换开销;黄金法则:当明确需要搜索单字节 ASCII 字符时,IndexByte 永远是性能最优的选择
2025-04-11 14:00:00
756
原创 strings.IndexAny 使用详解
作用:返回字符串 s 中第一个出现在字符集 chars 中的字符的索引位置。若未找到则返回 -1。轻量级字符集搜索工具;对短字符集有特殊优化;不支持正则表达式或复杂匹配规则
2025-04-11 09:00:00
1935
原创 strings.HasSuffix 使用详解
检查字符串 s 是否以指定的 suffix 结尾,返回 bool 结果。核心价值:提供标准化、高可读性的后缀检查方法。可靠性:作为标准库函数,经过充分测试和优化
2025-04-10 09:00:00
1391
原创 strings.HasPrefix 使用详解
strings.HasPrefix 用于检查字符串 s 是否以指定的 prefix 开头。如果是,返回 true ;否则返回 false
2025-04-09 14:00:00
1429
原创 strings.FieldsFunc 使用详解
高度灵活:通过函数完全控制分割逻辑Unicode 支持:正确处理多字节字符内存高效:返回的切片共享原字符串内存。
2025-04-09 09:00:00
903
原创 strings.Fields 使用详解
空白智能化处理:自动处理各种空白字符组合内存高效:返回的切片共享原字符串内存简单易用:无需预先知道分割符数量特性FieldsSplit正则表达式分隔符类型Unicode 空白固定字符串任意模式连续分隔符处理视为单个保留空字符串可配置性能高中低内存效率高中低。
2025-04-08 14:00:00
753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人