草庐IT

string-parsing

全部标签

arrays - 为什么 Go 的 strings.Fields(str) 和 strings.Split(str, "") 这么慢?

我一直在测试Node和Go中的函数以比较它们的性能。几乎在每个测试中,Go都比Node快得多,除了使用strings.Fields()或strings.Split()时,Node是Node的2-3倍快。开始(2.14秒):start:=time.Now()varnewWords[]stringstr:="asdasjhfalsjdhalsdjhfadhfaldhfaljdhfaldhfasjdhfalsdhasdalsdhalksdhalksdhalksdalkjsdfadlkjdalkjdhasdhfefafad6a5a85dfas5da5dada6sd58ad5a8sd5f8as5

parsing - 从 Go 中的多行输出中提取日期

请查看下面的netuse命令的输出。现在我想从这段文本中提取到期日期。不幸的是,netuse命令无法输出为json、xml或任何解析格式。因此,我坚持使用此文本:(。我只对获取10-6-20176:57:20并将其转换为Golang日期格式感兴趣。问题:我不知道如何开始?首先找到包含“密码过期”的行?然后呢?UsernamejdoeFullNameJohnDoeCommentUser'scommentCountrycode(null)AccountactiveYesAccountexpiresNeverPasswordlastset1-5-20176:57:20Passwordexpi

string - 二进制字符串转unicode

我不是100%确定为什么我的unicode二进制字符串不起作用..任何人都可以指出问题或帮助我修补它吗?另外,我将二进制文件分块的原因是它对于ParseInt来说太大而无法处理。有关示例,请参见下面的playground链接。funcbinToString(s[]byte)string{varcounterintchunk:=make([]byte,7)varbufbytes.Bufferfori:=ranges{ifi%8==0{counter=0ifi,err:=strconv.ParseInt(string(chunk),2,64);err==nil{buf.WriteStrin

string - 将字符串作为字符数组访问以在 strings.Join() 方法中使用 : GO language

我正在尝试以字符数组或rune形式访问字符串,并使用一些分隔符进行连接。什么是正确的做法。这是我尝试过的两种方法,但出现如下错误cannotuse([]rune)(t)[i](typerune)astype[]stringinargumenttostrings.Join一个字符串在GOLANG中是如何表示的。是不是有点像字符数组?packagemainimport("fmt""strings")funcmain(){vart="hello"s:=""fori,rune:=ranget{s+=strings.Join(rune,"\n")}fmt.Println(s)}packagema

string - slice 起始位置大于字符串的长度

任何人都知道为什么下面的代码运行时没有panic,它在字符串的长度上访问索引1。import("fmt")funcmain(){fmt.Println("hi"[2:])} 最佳答案 它不会“超出”长度,2恰好是长度(等于它)。Forarraysorstrings,theindicesareinrangeif0,otherwisetheyareoutofrange.由于您要对string进行slice,索引在范围内,如果:0这个表达式:"hi"[2:]由于缺少上限,它默认为长度,即2,因此它等同于:"hi"[2:2]这完全符合规范,

parsing - 使用 "go/parser"检查表达式是否为自定义类型

情况编写一个代码生成器来检查结构的字段并使用结构标签添加验证函数问题这里我需要检查type字段是否为自定义类型即,以下不是自定义类型int,[]int,*int,[]Integer,map[string]PhoneNumber但以下是自定义类型Integer,PhoneNumber,*PhoneNumber我想我可以使用像下面这样的函数来查找完全匹配并可以添加映射,[]支持funcisBuiltInType(typstring)bool{switchtyp{case"bool","byte","complex128","complex64","error":case"float32",

oop - 需要帮助理解 Go 中的 `map[String]type` 行为

请看这段代码:packageactivityimport("fmt""strconv""time")typeActivitystruct{yearContributionsmap[string]weekContributions}typedayContributionsstruct{Datetime.TimeContributionint}typeweekContributionsstruct{NotationstringAllDays[]dayContributions}func(currentWeekContribution*weekContributions)addContrib

golang 将新值设置为类型为 map[string]interface{} 的对象

我得到了像这样解析的jsonstr。varbdocinterface{}bson.UnmarshalJSON([]byte(gjson.Get(*str,"user").String()),&bdoc)我的bdoc是map[string]interface{}类型。当我想从我的map中获取key时,我会这样做:bdoc.(map[string]interface{})["pk"]但是我怎样才能为那个“pk”键设置一个新值呢?我想转换它bdoc["pk"]="1234567"。新值将不是接口(interface)类型,而是字符串类型。 最佳答案

string - 类型转换错误

我正在尝试按照此处的教程进行操作:https://goethereumbook.org/block-query/在他的代码中,他调用了header,然后将其硬编码到blockNumber中。header,err:=client.HeaderByNumber(context.Background(),nil)iferr!=nil{log.Fatal(err)}fmt.Println(header.Number.String())//5671744blockNumber:=big.NewInt(5671744)我试图对此进行改进并将字符串转换为int64。header,err:=clien

string - 将字符串转换为字符串

请说。为什么代码中的字符串“\xF0\x9F\x98\x81”与参数命令行中的“\xF0\x9F\x98\x81”不一样?funcmain(){text1:="\xF0\x9F\x98\x81"text2:=os.Args[1]}长度字符串“text1”=4,“text2”=16iflen(text1)。我如何将“text2”转换为“text1”? 最佳答案 确实有一个标准包和一个函数。strconv.UnquoteUnquoteinterpretssasasingle-quoted,double-quoted,orbackquot