回答

收藏

在 Go 中提取子字符串

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

我正在尝试从控制台读取整行(包括空格),然后对其进行处理。使用 bufio.ReadString,换行符和输入一起读取,所以我想出了以下代码来修剪换行符:+ c: \# S7 {* A# M3 B2 h: z
    input,_:=src.ReadString('\n')inputFmt:=input[0:len(input)-2] "" //Need to manually add end of string
    8 Q, J3 `, a' i; @! D4 m* L
有没有更常用的方法来做到这一点?换句话说,在为您提取子字符串时,是否有一个库可以处理结尾的空字节?
5 Q. W% x9 ?: T7 ]6 I, N7 ?& o                                                                " e/ t) X! ^/ Q/ o2 V' t$ r3 n2 r
    解决方案:                                                               
* C% Z/ T$ Q6 R" w  V                                                                你似乎对切片的工作和字符串存储格式感到困惑,这与你在 C 不同。
( t& f' \  [; y( F9 wGo 中的任何切片都存储长度(以字节为单位),不用担心len操作的成本:无需计数
. p, k" Y# g) W' K5 K& BGo 字符串不是空的,所以你不需要删除空字节,也不需要在切片后添加空字符串。
删除最后一个字符(如果是字节字符),只需执行0 e# Q, H; v( Y' W" a5 D; H
    inputFmt:=input[:len(input)-1]3 |* ~: }8 m1 t" V8 _$ u  B
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则