首页 > 其他分享 >Go语言学习日记【二十四】将字符串中连续多个空格压缩为一个

Go语言学习日记【二十四】将字符串中连续多个空格压缩为一个

时间:2022-10-13 17:08:19浏览次数:48  
标签:index string fmt 空格 字符串 Go tmpstr spc


package  main

import (
"fmt"
"regexp"
)

func main() {
oldstr := "I have a dream"
fmt.Println(oldstr)
newstr := DeleteExtraSpace(oldstr)
fmt.Println(newstr)
}

//删除字符串中的多余空格,有多个空格时,仅保留一个空格
func DeleteExtraSpace(s string) string {
regstr := "\\s{2,}"
reg, _ := regexp.Compile(regstr)
tmpstr := make([]byte, len(s))
copy(tmpstr, s)
spc_index := reg.FindStringIndex(string(tmpstr))
for len(spc_index) > 0 {
tmpstr = append(tmpstr[:spc_index[0]+1], tmpstr[spc_index[1]:]...)
spc_index = reg.FindStringIndex(string(tmpstr))
}
return string(tmpstr)
}

标签:index,string,fmt,空格,字符串,Go,tmpstr,spc
From: https://blog.51cto.com/u_15828115/5753999

相关文章

  • Go语言学习日记【二十三】监控linux系统cpu使用率与空置率
    packagemainimport("fmt""math""time"sigar"github.com/elastic/gosigar")typeMonitorstruct{lastSample*sigar.Cpu}typePercentagesstruct{User......
  • Go语言学习日记【二十五】golang格式化输出字符串左右对齐
    packagemainimport"fmt"funcmain(){fmt.Printf("%-40s\t%s\n","aaaaaaaaaaaaaaaaaa","a")fmt.Printf("%-40s\t%s\n","bb","b")} ......
  • Golang Gorm time 时间字段格式化模型类 重写
    问题:在使用GORM中如果我们使用到了CreateAt和UpdateAt就会发现这个时间的类型是time.Time而其数据是"2022-10-13T10:14:02.973528+08:00"这样的,然而这样的数据你......
  • Python基础四【字符串】
    1#双引号:使用双引号的一个好处,就是字符串中可以使用单引号字符。2#“转义字符”让你输入一些字符,它们用其他方式是不可能放在字符串里的。转义字符包含一个倒斜杠(\),......
  • Golang复杂json结构体解析
    1、示例一{"id":"8667597b-bcd9-51de31b655cd","name":"ali-redis-analyse","category":"db","category_display":"数据库","type":"redis","type_display":......
  • Python进阶:如何将字符串常量转化为变量?
     前几天,我们​​Python猫交流学习群​​里的M同学提了个问题。这个问题挺有意思,经初次讨论,我们认为它无解。然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知......
  • 常见字符串算法 I
    Hash字符串哈希1.1.算法简介字符串哈希(Hash)一般通过进制哈希实现.即:将字符串看作一个数,通过进制转化为整型,进制数一般为特殊质数/模数常ull自然溢出(防止Hash冲突)。......
  • golang usps api对接
    golanguspsapi对接简介实现对接uspsapi接口使用gogetgithub.com/wms3001/USPS实例获取跟踪信息usps:=&USPS{}usps.UserId="680CHUAN3141"resp:=usps.Track("930......
  • 【Python】关于Django如何处理前后端分离时的POST请求
    在目前的大环境趋势下,前后端分离已经是项目开发的主流,而Django在后端领域也受到众多程序员的青睐,那么在前后端分离开发时,经常会遇到django本身内置的csrf拦截保护机制本文......
  • go 文件相关操作
    前言常见的文件操作:读、写、追加、复制,在go语言中标准库os提供了Openfile函数来进行此类操作,其原型如下:funcOpenFile(namestring,flagint,permFileMode)(file*F......