回答

收藏

在 Go 中提取子字符串

技术问答 技术问答 318 人阅读 | 0 人回复 | 2023-09-11

我正在尝试从控制台读取整行(包括空格),然后对其进行处理。使用 bufio.ReadString,换行符和输入一起读取,所以我想出了以下代码来修剪换行符:
) e+ p1 J) y! f
    input,_:=src.ReadString('\n')inputFmt:=input[0:len(input)-2] "" //Need to manually add end of string
    # {' Y. N/ z* d3 K% P6 c1 L
有没有更常用的方法来做到这一点?换句话说,在为您提取子字符串时,是否有一个库可以处理结尾的空字节?( U# K+ c0 d: _2 e: k! x2 o
                                                               
- J8 ^0 q7 m+ M8 O' w0 Z    解决方案:                                                               
" t$ E% s( V+ [$ D3 U5 o                                                                你似乎对切片的工作和字符串存储格式感到困惑,这与你在 C 不同。' @. H" z' O+ G
Go 中的任何切片都存储长度(以字节为单位),不用担心len操作的成本:无需计数
0 }- F) c/ \9 i  b4 Q7 y7 yGo 字符串不是空的,所以你不需要删除空字节,也不需要在切片后添加空字符串。
删除最后一个字符(如果是字节字符),只需执行
/ [& @# O: ?- O: A
    inputFmt:=input[:len(input)-1]
    ; I& ]5 E5 T4 z4 B' N
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则