我正在尝试从控制台读取整行(包括空格),然后对其进行处理。使用 bufio.ReadString,换行符与输入一起读取,所以我想出了以下代码来修剪换行符:
input,_:=src.ReadString('\n')
inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string
有没有更惯用的方法来做到这一点?也就是说,是否已经有一个库可以在为您提取子字符串时处理结束的空字节?
(是的,我知道在 go readline -> string 中已经有一种方法可以读取没有换行符的行,但我正在寻找更多优雅的字符串操作。)
最佳答案
您似乎对 slice 的工作方式和字符串存储格式感到困惑,这与您在 C 中的不同。
- Go 中的任何 slice 都存储长度(以字节为单位),因此您不必关心
len
操作的成本:无需计算 - Go 字符串不是以 null 结尾的,因此您不必删除 null 字节,也不必在 slice 后通过添加空字符串来添加
1
。
要删除最后一个字符(如果是单字节字符),只需这样做
inputFmt:=input[:len(input)-1]
关于go - 在 Go 中提取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311033/