回答

收藏

在 Go 中提取子字符串

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

我正在尝试从控制台读取整行(包括空格),然后对其进行处理。使用 bufio.ReadString,换行符和输入一起读取,所以我想出了以下代码来修剪换行符:  s( w3 M$ H2 z# ~- Q- o
    input,_:=src.ReadString('\n')inputFmt:=input[0:len(input)-2] "" //Need to manually add end of string; m2 E) Y/ b3 B8 u
有没有更常用的方法来做到这一点?换句话说,在为您提取子字符串时,是否有一个库可以处理结尾的空字节?
! [. h- i, H1 m5 l1 s7 J: N7 e                                                               
' {  a8 z$ `5 |# w    解决方案:                                                                : M- J$ @$ b" |& z
                                                                你似乎对切片的工作和字符串存储格式感到困惑,这与你在 C 不同。9 M) M+ c) Q( p+ h' v: Y
Go 中的任何切片都存储长度(以字节为单位),不用担心len操作的成本:无需计数
( N4 X* r% q" \% s( gGo 字符串不是空的,所以你不需要删除空字节,也不需要在切片后添加空字符串。
删除最后一个字符(如果是字节字符),只需执行
& n6 S$ F0 ~# Q2 n5 j
    inputFmt:=input[:len(input)-1]
    % p) K9 J$ ]% a2 c8 ]- d" y. J
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则