当前位置: 首页 > 面试题库 >

在Go中提取子字符串

裘安阳
2023-03-14
问题内容

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

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

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

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


问题答案:

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

  • Go中的任何切片都存储长度(以字节为单位),因此您不必担心len操作成本:无需计数
  • Go字符串不会以null终止,因此您不必删除null字节,也不必1在切片后通过添加空字符串来添加。

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

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


 类似资料:
  • 在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。 1. substring(int beginIndex) 形式 此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。例如: 2. substring(int beginIndex,int e

  • 问题内容: 我有一个类似的领域 我想从数据中提取。 如何使用SQL Server 2008高效地做到这一点?谢谢你 问题答案: 试试这个 退货

  • 我有以下json结构: 如何提取整个节点“子句”并将其转换为字符串?输出应该是: 需要一个最佳的解决方案。 对于简单的解析,我使用JsonReader。

  • 我想从url字符串中提取子字符串。这是url: 我想开始从id中提取= 直到破折号(-),然后提取剩余的子字符串 请注意,确切的域不是上面的域,这只是一个示例。 有什么想法吗?我非常感谢你的帮助。谢谢 更新: 这就是我到目前为止所做的: 但它只是公开了/pi。

  • 问题内容: 我有一个文本字段,看起来像: 我想获取没有重复的文本。获得的含义: 不可能有double like的情况。 我知道这是在数据库中保存数据的可怕方法。我无法更改数据的保存方式。我只需要从此列中获得非常具体的信息(一次)。 我试着做: 这给了我,但对许多人来说是行不通的。 我曾想过使用正则表达式,但是我不知道有多少个。 我怎么做? 问题答案: 这不是工作,但有可能: 笔记: 根据col最大