在Go中提取子字符串

我正在尝试从控制台(包括空格)读取整行,然后对其进行处理。使用bufio.ReadString,将换行符与输入一起读取,因此我想出了以下代码来修剪换行符:

input,_:=src.ReadString('\n')
inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string

有没有更惯用的方法来做到这一点?也就是说,是否已经有一个库在为您提取子字符串时会处理结尾的空字节?

(是的,我知道在go readline-> string中已经有一种不用换行符就能读取行的方法,但是我正在寻找更多用于优雅的字符串操作的方法。)


慕仙森
浏览 221回答 3
3回答

慕后森

似乎您对切片和字符串存储格式的工作感到困惑,这与您在C语言中所拥有的有所不同。Go中的任何切片都存储长度(以字节为单位),因此您不必担心len操作成本:无需计数Go字符串不会以null结尾,因此您不必删除一个null字节,也不必1在切片后通过添加空字符串来添加。要删除最后一个字符(如果是一个字节的字符),只需执行inputFmt:=input[:len(input)-1]

MMMHUHU

Go字符串不是以null结尾的,要删除字符串的最后一个字符,您可以简单地执行以下操作:s = s[:len(s)-1]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go