三、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) | %#v | go语法打印 |
| []int64 | %T | 类型打印 |
2.2 整型(缩进,进制类型,正负符号)
| 格式化后的效果 | 动词 | 描述 |
|---|---|---|
| 15 | %d | 十进制 |
| +15 | %+d | 必须显示正负符号 |
| _15 | %4d | Pad空格(宽度为4,右对齐) |
| 15_ | %-4d | Pad空格(宽度为4,左对齐) |
| 1111 | %b | 二进制 |
| 17 | %o | 八进制 |
| f | %x | 16进制,小写 |
2.3 字符(有引号,Unicode)
value:65 (Unicode 是 A )
| 格式化后的效果 | 动词 | 描述 |
|---|---|---|
| A | %c | 字符 |
| ‘A’ | %q | 有引号的字符 |
| U+0041 | %U | Unicode |
| U+0041 ‘A’ | %#U | Unicode有引号 |
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. (重点!!)若父类和子类均有静态代码块、实例代码块以及无参构造方法,则继承关系上的执行顺序…...
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叉树 插入图示: 全搜索和前缀搜索: 注意:全局匹配匹配完直接返回插入时的标志位 而前缀匹配时ÿ…...
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…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
