go语言中字符串的常用操作,示例_go 字符串常用操作-程序员宅基地

技术标签: golang30天  golang  

示例以及注释:

package strtools

import (
	"fmt"
	"strconv"
	"strings"
)

//字符串的常用函数使用

//`
//1.统计字符串的长度,按字节len(str)
//
//`

func Strlab(){
	str1:="hello中国"   //11  中--3  国---3 hello--5  ==11
	fmt.Println(len(str1))

	//######
	//有中文的时候用[]rune进行转换
	str2:=[]rune(str1)
	fmt.Println(len(str2))  //7 "hello中国"

	//######字符串转整数
	n,err:=strconv.Atoi("12")
	if err!=nil{
		fmt.Printf("err==",err)
	}
	fmt.Printf("转换的数字是%v",n)


	//######整数转字符串
	stra:=strconv.Itoa(123456)
	fmt.Println(stra)

	//######字符串底层就是有byte切片组成的,所以可以容易转换
	//字符串转[]byte

	var bytes=[]byte("hello go")
	fmt.Println("转换为的切片为:",bytes)
	fmt.Printf("转换为的切片为%c:\n",bytes)

	//[]byte转字符串

	strstr:=string([]byte{97,98,99})

	fmt.Printf("strstr=%v\n",strstr)

	//10进制转2,8,16进制

	strint2:=strconv.FormatInt(8,2)
	strint8:=strconv.FormatInt(8,8)
	strint16:=strconv.FormatInt(8,16)
	strint10:=strconv.FormatInt(8,10)

	fmt.Printf("2进制:==%v,8进制:==%v,16进制:==%v,10进制:==%v",strint2,strint8,strint16,strint10)

}

//查找指定的字符串,包含等操作
func Strcon(){
	b:=strings.Contains("hello chinese\n","chinese")
	fmt.Print("是否包含:",b)


	//统计一个字符串有几个指定的字串

	num:=strings.Count("hehehe\n","he")

	fmt.Print(num)


	//不区分大小写的字符串的比较

	c:=strings.EqualFold("abc","aBc")
	fmt.Println("\n",c)

	//返回字串在字符串第一次出现的index值,如果没有返回-1,

	index:=strings.Index("abcabcd","abc")
	fmt.Println(index)   //0

	//LastIndex返回字串在字符串最后一次出现的index值,如果没有返回-1,

	index1:=strings.LastIndex("abcabcd","abc")
	fmt.Println(index1)   //3

	//字符串的替换

	strpython:=strings.Replace("is love go yu yan ","go","python",-1)

	fmt.Println(strpython)  ///is love python yu yan   -1标识全部替换

	//按照指定的某个字符,为分割标识,将一个字符串拆分成字符串切片

	strarr:=strings.Split("hello,world,hello,go",",")
	fmt.Println(strarr)
	fmt.Printf("%T\n",strarr)
	//[hello world hello go]
	//[]string


	//给字符串的字母进行大小写的转换,strings.Tolower(),strings.ToUpper()

	strchar:="golang Hello world!"

	lower:=strings.ToLower(strchar)
	upper:=strings.ToUpper(strchar)
	fmt.Println("\n",lower,upper)

	//将字符串左右两边指定的字符去掉:
	//本示例中是去掉“空格+!”
	strspace:=strings.Trim("! hello! !","!")
	fmt.Println(strspace)  // hello!


	//判断字符串是否是以指定的字符串开头strings.HasPrefix()

	dd:=strings.HasPrefix("http://127.0.0.1/index.html","http")
	fmt.Println(dd)
	fmt.Println()


	//判断字符串是否是以指定的字符串结尾strings.HasSuffix()

	ee:=strings.HasSuffix("dsd23f.jpg",".jpg")
	fmt.Println(ee)
	fmt.Println()





}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wtt234/article/details/124134864

智能推荐

google play 上架更改成自己生成的应用签名实践_google play 签名生成-程序员宅基地

文章浏览阅读377次,点赞2次,收藏2次。google play 上架卡关在更改应用签名上。不想用google生成 签名,自己用keytool生成的密钥来用。为了顺利,其实可以放弃开发时自己测试用打包的密钥,重新生成新的密钥来配合本文章,会有意想不到的的顺利——可能是玄学!_google play 签名生成

ubuntu 安装 python3.8_ubuntu python3.8安装不了-程序员宅基地

文章浏览阅读955次。Windows 10 里面的 linux子系统,里面有 python2.x 和 python3.6。想要升级到 python3.8,却不成功。网上请教了高人,说要先升级 ubuntu。于是,执行:apt-get update 升级 ubuntu;然后再执行:apt-get install python3.8成功开始安装了。另外一个概念:python 的多个版本,可以在同一个 linux 底下共存。我的 linux 底下输入:python 进入的是 python2..._ubuntu python3.8安装不了

iOS根据字符串计算UITextView高度_ios uitextview 字符串高度-程序员宅基地

文章浏览阅读3.3k次。iOS计算字符串高度,有需要的朋友可以参考下。方法一:ios7.0之前适用/** @method 获取指定宽度width,字体大小fontSize,字符串value的高度 @param value 待计算的字符串 @param fontSize 字体的大小 @param Width 限制字符串显示区域的宽度 @result float 返回的高度 */- (float_ios uitextview 字符串高度

xssProject在java web项目中应用-程序员宅基地

文章浏览阅读350次。1.项目引入xssProtect-0.1.jar、antlr-3.0.1.jar、antlr-runtime-3.0.1.jar包2.封装request [code="java"]public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper{ HttpServletRequest ..._xsscrapy对java项目

计算机网络课程设计 学校园网设计_计算机网络校园网课程设计-程序员宅基地

文章浏览阅读3.2w次,点赞37次,收藏629次。计算机网路课程设计 校园组网_计算机网络校园网课程设计

MQ 消息重复消费问题与解决方案-程序员宅基地

文章浏览阅读5.7k次。本文摘自 Doocs 开源社区《互联网 Java 工程师进阶知识完全扫盲》手册,方便读者随时随地阅读学习。也欢迎读者们关注 GitHub 项目:https://github.com/doo..._mq重复消费解决方案

随便推点

手动脱壳[HZNUCTF 2023 final]signin-程序员宅基地

文章浏览阅读1.3k次,点赞42次,收藏20次。手动脱壳时时刻关注esp寄存器,来找到正真程序的入口。

Qt获取控件位置,坐标总结_qt 按钮位置坐标-程序员宅基地

文章浏览阅读8.9k次。总结的结果是:QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标。总结一:经过试验,QMouseEvent::globalPos() 和 QCursor::pos()效果一样,但是Qt帮助文档说不一样,可是我获得值确实相同的。QCursor::pos() == QMouseEvent::globalPos() 都是全局坐标;总结_qt 按钮位置坐标

redis持久化之RDB_redis rdf时间-程序员宅基地

文章浏览阅读137次。什么是RDB: 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且..._redis rdf时间

docker里面安装Qt Creator_docker 容器里如何下载qtcreator-程序员宅基地

文章浏览阅读4.6k次。sudo apt-get install qt5-default qtcreator_docker 容器里如何下载qtcreator

JavaWeb开发 Servlet技术详解_能够编写servlet单一控制器应用程序。-程序员宅基地

文章浏览阅读743次,点赞3次,收藏3次。仅为个人学习使用。_能够编写servlet单一控制器应用程序。

从 Aave 到 Yearn:一文梳理 DeFi 中的「蓝筹股」-程序员宅基地

文章浏览阅读263次。撰文:Liam J. Kelly & Robert Stevens来源:Decrypt编辑:南风在传统的股票市场中,“蓝筹股”是指家喻户晓的股票,它们的财务状况良好,长期回报稳定,..._yearn aave

推荐文章

热门文章

相关标签