首页 > 其他分享 >Go语言开发中 经常遇到的字符串处理 的一些简单小技巧

Go语言开发中 经常遇到的字符串处理 的一些简单小技巧

时间:2022-10-18 14:25:32浏览次数:75  
标签:return 技巧 fmt 字符串 str Go string

Go语言开发中 经常遇到的字符串处理 的一些简单小技巧

Go语言圈 2022-10-18 08:30 发表于广东 学习与交流:Go语言技术微信群

商务合作加微信:LetsFeng

goland 全家桶激活码,支持所有版本,支持所有系统

链接:http://web.52shizhan.cn/activity/s2abxc

提取码:GJF9B1DK

 

现在就开始你的Go语言学习之旅吧!人生苦短,let’s Go.





一、如何修改字符串中的一个字符?

str:="hello"
// 将字符串转成字节数组
c:=[]byte(str)
// 将字节数组第一个数转成 'c'
c[0]='c'
s2:= string(c)

 

二、如何获取字符串的子串?

str:="hello"
// 获取 n 到 m-1 内元素 [n,m)
substr := str[n:m]
// 获取 第一个元素 [1,2)
substr := str[1:2]

 

三、使用for或者for-range遍历字符串?

代码如下(示例):

str:="hello"
for i:=0; i < len(str); i++ {
    v := str[i]
    fmt.Println(v)
}

for _, v := range str {
    fmt.Println(v)
}

 

结果都将是ASCII码值

图片

 

四、如何获取一个字符串的长度?

  1. 字节数?

v := len(str)

 

2.字符数?

//较快
v1 := utf8.RuneCountInString(str)

v2 := len([]rune(str))

 

 

五、如何更好的连接字符串?

  1. 两个字符串?

str1 := "hello"
str2 := "world"
v := str1 + "_" + str2

 

2.字符串数组或切片?

strArr := []string{
    "hello", "world",
}

v1 := strings.Join(strArr, "_")
fmt.Println(v1)

 

 

自动填充字符串,补齐位数

// StrPad
// input string 原字符串
// padLength int 规定补齐后的字符串位数
// padString string 自定义填充字符串
// padType string 填充类型:LEFT(向左填充,自动补齐位数), 默认右侧
func StrPad(input string, padLength int, padString string, padType string) string {

    output := ""
    inputLen := len(input)

    if inputLen >= padLength {
        return input
    }

    padStringLen := len(padString)
    needFillLen := padLength - inputLen

    if diffLen := padStringLen - needFillLen; diffLen > 0 {
        padString = padString[diffLen:]
    }

    for i := 1; i <= needFillLen; i += padStringLen {
        output += padString
    }
    switch padType {
    case "LEFT":
        return output + input
    default:
        return input + output
    }
}

 

用法:

func main() {
    leftString := StrPad("84792", 10, "0000000000000000000000000", "LEFT")
    rightString := StrPad("1", 5, "0000000000000000", "RIGHT")
    fmt.Println(fmt.Sprintf("%s-%s", leftString, rightString)) //0000084792-10000
}

 

前置/后置补零

package main

import (
    "fmt"
)

func main()  {
    res:=ZeroFillByStr("12",3,true)
    fmt.Println(res)
}
//
//  ZeroFillByStr
//  @Description: 字符串补零
//  @param str :需要操作的字符串
//  @param resultLen 结果字符串的长度
//  @param reverse true 为前置补零,false 为后置补零
//  @return string
//
func ZeroFillByStr(str string,resultLen int, reverse bool) string  {
    if len(str)>resultLen||resultLen<=0{
        return str
    }
    if reverse{
        return fmt.Sprintf("%0*s", resultLen, str)//不足前置补零
    }
    result := str
    for i:=0;i<resultLen-len(str);i++{
        result+="0"
    }
    return result

}

 

结果:

1 <nil> 012

 

 

文章首发:https://blog.csdn.net/moer0/article/details/123240159

 

更多相关Go语言的技术文章或视频教程,请关注本公众号获取并查看,感谢你的支持与信任

标签:return,技巧,fmt,字符串,str,Go,string
From: https://www.cnblogs.com/cheyunhua/p/16802401.html

相关文章

  • [CF321E]Ciel and Gondolas
    做题时间:2022.10.18\(【题目描述】\)有\(n(n\leq4000)\)个人按\(1\rightarrown\)编号,并按这个顺序站成一排,现在要将他们分成连续的\(k(k\leq\min(n,800))\)组,对......
  • Go 每日一库之 go-cache 缓存
    什么是 go-cache go-cache是一个轻量级的基于内存的K-V储存组件,内部实现了一个线程安全的map[string]interface{},适用于单机应用。具备如下功能:线程安全,多gorou......
  • OpenCV技巧 | 常用格式图片保存为透明背景图片(附Python源码)-教你轻松制作Logo
    导读本文主要介绍使用OpenCV将常用格式图片保存为透明背景图片的方法与实现代码。实现目标本文的目标有如下两个:①将常见格式[jpg/png/bmp]白色背景图片转换保存为透明背......
  • 像 Mysql 和 MongoDB 这种大型软件在设计上都是精益求精的,它们为什么选择B树,B+树这些
    为什么MongoDB(索引)使用B-树而Mysql使用B+树?B树与B+树,其比较大的特点是:B树对于特定记录的查询,其时间复杂度更低。而B+树对于范围查询则更加方便,另外B+树相对......
  • Django解决跨域
    1、安装第三方扩展pipinstalldjango-cors-headers2、settings.py配置#添加应用INSTALLED_APPS=['corsheaders',]MIDDLEWARE_CLASSES=['corsheaders.mi......
  • 分享 | 这里有一份视觉光源选型、打光技巧、相机选型、镜头选型的资料,请查收!
    一、光源介绍与选择二、打光方式与技巧​三、相机分类与选型四、镜头分类与选择​完整资料下载地址,请在公众号【OpenCV与AI深度学习】后台回复【相机光源】即可获取!—THEEN......
  • 每日一库 swaggo
    每日一库swaggo相信很多程序猿和我一样不喜欢写API文档。写代码多舒服,写文档不仅要花费大量的时间,有时候还不能做到面面具全。但API文档是必不可少的,相信其重要性就不用......
  • Python基础 字符串方法
    1、字符串首字母大写i="shulei_xiaoxin"S=i.capitalize()print(S)Shulei_xiaoxin2、字符串全部大写或小写i="shuLEI_XIAOxin"S=i.upper()S1=i.lower()......
  • Golang环境安装
    以Windows为例下载Golang通过访问Golang中文网进行下载安装包https://studygolang.com/dl下载msi后缀的安装包安装Golang双击刚刚下载完毕的安装包然后......
  • Golang入门:Linux上的go语言安装与配置
    Tips:本文以本文撰写时的Go语言最新版本,也就是go.1.19.2版本为例。Linux发行版本使用Ubuntu22.04.1LTS为例来做演示。安装C工具Go的工具链是用C语言编写......