回答

收藏

在 Go 中提取子字符串

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

我正在尝试从控制台读取整行(包括空格),然后对其进行处理。使用 bufio.ReadString,换行符和输入一起读取,所以我想出了以下代码来修剪换行符:
5 }, h5 f' p! o/ X
    input,_:=src.ReadString('\n')inputFmt:=input[0:len(input)-2] "" //Need to manually add end of string
    $ s" q) J) D8 K( {$ r3 y% y* c
有没有更常用的方法来做到这一点?换句话说,在为您提取子字符串时,是否有一个库可以处理结尾的空字节?4 [+ F. c: M8 |! R
                                                               
, z' X" b& X! [" ~& m    解决方案:                                                                7 j0 L, Z( W& w4 l+ a
                                                                你似乎对切片的工作和字符串存储格式感到困惑,这与你在 C 不同。% D# v- A, {% z2 P/ k
Go 中的任何切片都存储长度(以字节为单位),不用担心len操作的成本:无需计数
$ x/ O: o0 B+ X5 o% K/ g1 W/ IGo 字符串不是空的,所以你不需要删除空字节,也不需要在切片后添加空字符串。
删除最后一个字符(如果是字节字符),只需执行
% A! |' \: U/ b' p# b# b" i
    inputFmt:=input[:len(input)-1]
    $ G$ w- V' q9 y' ~" p* B
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则