回答

收藏

在 Go 中提取子字符串

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

我正在尝试从控制台读取整行(包括空格),然后对其进行处理。使用 bufio.ReadString,换行符和输入一起读取,所以我想出了以下代码来修剪换行符:
) F# ]$ t* C# Z. m8 y, H- z/ m5 o
    input,_:=src.ReadString('\n')inputFmt:=input[0:len(input)-2] "" //Need to manually add end of string
    - W  T% p; W2 ^2 \
有没有更常用的方法来做到这一点?换句话说,在为您提取子字符串时,是否有一个库可以处理结尾的空字节?
1 B: K2 f3 k. h: E% m8 a                                                                - T' {4 w5 _- V8 W" O; w0 e+ b. ?
    解决方案:                                                                7 X& ]% o1 l* B, F$ o  {: }
                                                                你似乎对切片的工作和字符串存储格式感到困惑,这与你在 C 不同。1 x# J2 o7 G) B! Z
Go 中的任何切片都存储长度(以字节为单位),不用担心len操作的成本:无需计数% I! w8 a# A: \0 \3 d% Z/ Y; |
Go 字符串不是空的,所以你不需要删除空字节,也不需要在切片后添加空字符串。
删除最后一个字符(如果是字节字符),只需执行4 z3 g' d; q" ]6 k- P# G+ c
    inputFmt:=input[:len(input)-1]  R0 s" S! w6 W9 r
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则