为了账号安全,请及时绑定邮箱和手机立即绑定

在Go中提取子字符串

在Go中提取子字符串

Go
慕仙森 2021-05-11 17:18:40
我正在尝试从控制台(包括空格)读取整行,然后对其进行处理。使用bufio.ReadString,将换行符与输入一起读取,因此我想出了以下代码来修剪换行符:input,_:=src.ReadString('\n') inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string有没有更惯用的方法来做到这一点?也就是说,是否已经有一个库在为您提取子字符串时会处理结尾的空字节?(是的,我知道在go readline-> string中已经有一种不用换行符就能读取行的方法,但是我正在寻找更多用于优雅的字符串操作的方法。)
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

似乎您对切片和字符串存储格式的工作感到困惑,这与您在C语言中所拥有的有所不同。

  • Go中的任何切片都存储长度(以字节为单位),因此您不必担心len操作成本:无需计数

  • Go字符串不会以null结尾,因此您不必删除一个null字节,也不必1在切片后通过添加空字符串来添加。

要删除最后一个字符(如果是一个字节的字符),只需执行

inputFmt:=input[:len(input)-1]


查看完整回答
反对 回复 2021-05-17
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

Go字符串不是以null结尾的,要删除字符串的最后一个字符,您可以简单地执行以下操作:

s = s[:len(s)-1]


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信