当前位置: 首页 > news >正文

三、GoLang字符串的基本操作

一、转义符是什么?

转义字符意义
\n换行,将当前位置移动到下一行开头
\r回车,将当前位置移到本行开头
\t相当于一个Tab键
\\代表一个反斜线“\”
\"代表一个双引号字符

代码实战

package mainimport "fmt"/*
*字符串基本用法
*/
func main() {//转义符// 我在学习"go"语言的字符串基本用法\,字符串的'基本用法'// 假如现在在程序里输出这么一段话 我们需要对 引号来进行转义 因为他和我们定义字符串冲突了// 转义可以使用 \ 或者使用 ``var learn stringlearn = "我在学习\"go\"语言的字符串基本用法\\,字符串的'基本用法'"learn1 := `我在学习"go"语言的字符串基本用法`fmt.Println(learn)fmt.Println(learn1)// 1.\n:换行,将当前位置移到下一行开头var string1 stringstring1 = "我在学习go语言,\n学习到换行符了"fmt.Println(string1)// 2.\r:回车,将当前位置移到本行开头var string2 stringstring2 = "我在学习go语言,\r学习到回车符了"fmt.Println(string2)// 3.\t:相当于一个 Tab键var string3 stringstring3 = "\t我在学习go语言,到tab键了"fmt.Println(string3)//计算字符串的长度var desc stringdesc = "我在学习字符串的基本用法"descs := []rune(desc)fmt.Println(len(descs))
}

二、字符串格式化输出

2.1 缺省格式和类型

格式化后的效果动词描述
[0 1]%v缺省格式
[]int64(0,1)%#vgo语法打印
[]int64%T类型打印

2.2 整型(缩进,进制类型,正负符号)

格式化后的效果动词描述
15%d十进制
+15%+d必须显示正负符号
_15%4dPad空格(宽度为4,右对齐)
15_%-4dPad空格(宽度为4,左对齐)
1111%b二进制
17%o八进制
f%x16进制,小写

2.3 字符(有引号,Unicode)

value:65 (Unicode 是 A )

格式化后的效果动词描述
A%c字符
‘A’%q有引号的字符
U+0041%UUnicode
U+0041 ‘A’%#UUnicode有引号

2.4 浮点(缩进、精度、科学计数)

value:123.456

格式化后的效果动词描述
1.234560e+02%e科学计数
123.456000%f十进制小数

2.5 字符串

value:“cookie”

格式化后的效果动词描述
cookie%s字符串原样输出
_cookie%6s宽度为6,邮对齐

部分演示代码:

package mainimport "fmt"func main() {//=============================================== 二、格式化输出相关的参数===========================username := "张三"age := 20address := "北京"var ages []int = []int{1, 2, 3}outContent := fmt.Sprintf("用户名%s,年龄:%d,地址:%s 数组的值:%v", username, age, address, ages)fmt.Println(outContent)}

三、字符串拼接

package mainimport ("fmt""strconv""strings"
)func main() {//字符串的拼接name := "张三"age := 18sex := "男"address := "北京市海淀区上地大厦"//第一种拼接方式:字符串性能最差的outContent := fmt.Sprintf("姓名是:%s,性别是:%s,年龄是:%d,工作地址在:%s", name, sex, age, address)//第二种拼接方式:性能良好的outContent1 := "姓名是:" + name + ",性别是:" + sex + ",年龄是:" + strconv.Itoa(age) + ",工作地址在:" + address//第三种拼接方式:性能最好var builder strings.Builderbuilder.WriteString("姓名是:")builder.WriteString(name)builder.WriteString(",性别是:")builder.WriteString(sex)builder.WriteString(",年龄是:")builder.WriteString(strconv.Itoa(age))builder.WriteString(",工作地址是:")builder.WriteString(address)//生成字符串内容outContent2 := builder.String()//统计 builder的长度fmt.Println("字符串的长度", builder.Len())//重置 builder的内容?builder.Reset()outContent3 := builder.String()//打印内容fmt.Println(outContent)fmt.Println(outContent1)fmt.Println(outContent2)fmt.Println("这是什么内容:" + outContent3)}

四、字符串的比较

package mainimport ("fmt""strings"
)
func main() {//=============================================== 二、字符串的比较===========================a := "hello"b := "hello"c := "bello"fmt.Println(a == b)fmt.Println(a != b)//大小比较 比较 ASCII码fmt.Println(a > c)
}

五、字符串操作常用方法

字符串常用方法可以点进到源码进行查看

package mainimport ("fmt""strings"
)func main() {//=============================================== 三、字符串的常用方法===========================content := "我在学习go语言,正在学习的是字符串的常用方法"//查询字符串是否包含某个值fmt.Println(strings.Contains(content, "go"))//计算字符串的长度var desc stringdesc = "我在我"descs := []rune(desc)fmt.Println(len(descs))//出现的次数fmt.Println(strings.Count(content, "go"))//分割字符串var contents = strings.Split(content, ",")fmt.Println(contents[0])fmt.Println(contents[1])
}

相关文章:

三、GoLang字符串的基本操作

一、转义符是什么? 转义字符意义\n换行,将当前位置移动到下一行开头\r回车,将当前位置移到本行开头\t相当于一个Tab键\\代表一个反斜线“\”\"代表一个双引号字符 代码实战 package mainimport "fmt"/* *字符串基本用法 */ func main…...

基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏

目录 引出安装npm install安装element-ui安装axios 进行配置main.js中引入添加jwt前端跨域配置 进行初始布局HomeView.vueApp.vue 新增页面和引入home页面导航栏总结 引出 1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配…...

在 ubuntu20.04 上安装 Pytorch

参考资料:https://www.linode.com/docs/guides/pytorch-installation-ubuntu-2004/ sudo apt update sudo apt install nvidia-cuda-toolkit (3G) mkdir anaconda cd ~/anaconda wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh chmod …...

远程恋爱网站部署秘籍——群晖虚拟机助ni秀恩爱

文章目录 前言1. 安装网页运行环境1.1 安装php1.2 安装webstation 2. 下载网页源码文件2.1 访问网站地址并下载压缩包2.2 解压并上传至群辉NAS 3. 配置webstation3.1 配置网页服务3.2 配置网络门户 4. 局域网访问静态网页配置成功5. 使用cpolar发布静态网页,实现公网…...

vscode c++解决包含头文件红色波浪线问题

安装c/c插件后,按ctrlshiftp, 点击打开了c_cpp_properties.json文件,对其中的IncludePath进行编辑,示例如下: "includePath": ["${workspaceFolder}/**","${workspaceFolder}/include/**&q…...

PostgreSQL docker compose安装配置

docker-compose.yml如下: version: 3services:postgres:image: postgres:15.4healthcheck:test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]timeout: 45sinterval: 1…...

电脑文件批量重命名:高效操作技巧

随着时间的推移,我们积累的文件和文件夹数量越来越多,需要对它们进行合理的命名和管理,以便更方便地查找和利用。而文件批量重命名功能可以帮助我们更高效地管理文件夹。下面介绍五种方式,帮助你更好地利用文件批量重命名工具&…...

c高级day4(shell)

实现一个对数组求和的函数,数组通过实参传递给函数写一个函数,输出当前用户的uid和gid,并使用变量接收结果...

整十粉丝庆祝文章系列内容征集建议

亲爱的读者们,大家好! 作为一名文章作者,我深知没有读者的支持和喜爱,我的文字就只是无意义的文字堆积。因此,为了庆祝与感谢大家长久以来的支持,我准备举办一场特别的活动——粉丝庆祝文章系列内容征集建…...

两数乘积:输出1~100整数乱序列表中两数乘积是目标整数的最小下标对

给定1~100整数的乱序列表,查找并输出乘积是用户指定整数的两个整数下标对。 (本笔记适合熟练掌握Python列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教…...

【JavaSE】面试01

文章目录 1. JDK、JRE、JVM之间的关系2. 补充3. 面试题:重载和重写的区别?4. super和this5. (重点!!)若父类和子类均有静态代码块、实例代码块以及无参构造方法,则继承关系上的执行顺序&#xf…...

Elasticsearch(二)kibana数据检索

Elasticsearch(二)kibana数据检索 1.简述 有了数据学习使用kibana调用api检索数据,熟练kibana操作后再进一步使用spring data。 term用于keyword类型数据精准查询,类似mysqlmatch 用于text类型数据分词查询,倒排索引 首先针对keyword文本…...

JavaScript编程语法作业

目录 目录 前言 思维导图 1,作业资源 2,if语句练习 2.1代码解读: 2.2,结果展示: 3,switch语句练习 3.1,代码解读: 3.2,结果展示: 4.while循环练习 4.1,代码解读: 4.2.结果展示: 5.do-while循环练习 5.1,代码解读: 5.2,结果展…...

服务器中了Malloxx勒索病毒应该怎么办?勒索病毒解密,数据恢复

Malloxx勒索病毒是一种近年来发现的电脑病毒,它以加密用户电脑中的重要文件数据为手段,威胁用户并以此勒索钱财。这种病毒的传播方式多种多样,可以通过电子邮件、恶意网站、网络下载等方式进行传播。一旦电脑被感染,病毒会立即锁住…...

如何实现Spring的事务管理功能:@Transactional声明式事务

在Spring MVC中处理SQL事务,可以使用Spring的事务管理功能来实现。Spring提供了多种配置和编程方式来管理事务,以下是一种常见的基于注解的方法来处理SQL事务: 1. 配置数据源和事务管理器:首先,您需要配置数据源和事务…...

LeetCode(力扣)122. 买卖股票的最佳时机 II

LeetCode122. 买卖股票的最佳时机 II 题目链接代码 题目链接 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/ 代码 class Solution:def maxProfit(self, prices: List[int]) -> int:result 0for i in range(1, len(prices)):result max((prices[i…...

串行通信协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、UART二、SPI二、IIC 前言 UART为异步串行通信,使用各自的时钟控制数据的发送和接受过程,不使用同步时钟,而是使用一些特…...

Elasticsearch中RestClient使用

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

【LeetCode-中等题】208. 实现 Trie (前缀树)

文章目录 题目方法一:利用数组构建26叉树方法二:利用哈希表构建26叉树 题目 方法一:利用数组构建26叉树 插入图示: 全搜索和前缀搜索: 注意:全局匹配匹配完直接返回插入时的标志位 而前缀匹配时&#xff…...

python队列与多线程——生产者消费者模型

队列相关知识点 多线程相关知识点 import random import time from queue import Queue import threadingclass Consumer(threading.Thread):def __init__(self, name, Q: Queue):super(Consumer, self).__init__()self.name nameself.Q Qdef run(self):while True:time.sl…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

免费数学几何作图web平台

光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...