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

golang 字符串操作、处理

一、golang的字符串长度 

1. len()内置系统函数,计算字符串结果是字符串的字节长度,不是字符长度

//1.ASCII字符串长度(字节长度)
str1 := "wo ai zhong guo" 
fmt.Println(len(str1)) //15//2.带中文的字符串长度(字节长度)
str2 := "我爱中国"
fmt.Println(len(str2)) //12   4 * 3字节 = 12字节

2. 计算带中文的字符串长度。 需要将字符串转为 rune类型(int32)

	//带中文的字符串长度str1 := "wo ai 中国"r := []rune(str1)fmt.Println(len(r)) //8//也可以使用 utf8.RuneCountInString() 计算携带中文的字符串长度num := utf8.RuneCountInString(str1)fmt.Println(num) //8

3.为什么字符串带中文,字符长度计算方式不一样?

因为golang默认的字符编码是utf-8,  字符串的底层是 []byte类型,英文及标点符号都是每个占1个字节,中文占3个字节。 len() 函数实际上计算的是 字符串的字节长度。要计算中文长度,那么就得转成rune 或者 通过 utf8.RuneCountInString(str) 来计算。

二、字符串分割成切片,切片拼接成字符串

	//字符串分割str1 := "刘备,关羽,张飞"s := strings.Split(str1, ",")fmt.Println(s) //切片  [刘备 关羽 张飞]//切片拼接成字符串str2 := strings.Join(s, "-")fmt.Println(str2) //字符串 刘备-关羽-张飞

三、字符串查找(字符串中是否存在某些子串)

	//1.字符串中是否存在某些字符str := "http://baidu.com/index/index.html"b := strings.Contains(str, "http://") //字符串中是否存在 http头fmt.Println(b)                        //true//2.某个子串 在字符串中有多少个count := strings.Count(str, "index")fmt.Println(count) //2//3.字串在字符串中开始索引位置index := strings.Index(str, "bai")fmt.Println(index) //7//4.字串在字符串中最后一次索引位置index = strings.LastIndex(str, "index")fmt.Println(index) //23

四、剔除字符串左右空格及左右指定字符

	//1.字符串去左右空格str1 := " 野蛮生长 "fmt.Println(utf8.RuneCountInString(str1)) //字符长度6str := strings.TrimSpace(str1)fmt.Println(str)fmt.Println(utf8.RuneCountInString(str)) //字符长度4 去掉了左右空格//2.去掉左右指定字符str2 := "-野蛮生长-"str = strings.Trim(str2, "-")fmt.Println(str) //野蛮生长//3.去掉左侧指定字符str3 := "-野蛮生长-"str = strings.TrimLeft(str3, "-")fmt.Println(str) //野蛮生长-//4.去掉右侧指定字符str4 := "-野蛮生长-"str = strings.TrimRight(str4, "-")fmt.Println(str) //-野蛮生长

五、字符串中的某些字符替换

	//1.字符串中某个字符替换掉str := "123 + 456 + 789 = ?"str1 := strings.Replace(str, "+", "-", 1) //替换掉一个fmt.Println(str1)  //123 - 456 + 789 = ?str2 := strings.Replace(str, "+", "-", 2) //替换掉两个fmt.Println(str2)  //123 - 456 - 789 = ?str3 := strings.ReplaceAll(str, "+", "-") //替换掉所有fmt.Println(str3)  //123 - 456 - 789 = ?

六、数字字符串转数字(int),int转数字字符串

	//1.数字字符串转intstr1 := "123789ab"number1, _ := strconv.Atoi(str1)fmt.Println(number1) //0str2 := "123789"number2, _ := strconv.Atoi(str2)fmt.Println(number2) //123789//2.int转字符串number := 123456str := strconv.Itoa(number)fmt.Println(str)                 //123789fmt.Println(reflect.TypeOf(str)) //string

相关文章:

golang 字符串操作、处理

一、golang的字符串长度 1. len()内置系统函数,计算字符串结果是字符串的字节长度,不是字符长度 //1.ASCII字符串长度(字节长度) str1 : "wo ai zhong guo" fmt.Println(len(str1)) //15//2.带中文的字符串长度&…...

Nginx配置WebSocket反向代理

1、WebSocket协议 ​ WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的…...

devops(后端)

1.前言 该devpos架构为gitlabjenkinsharbork8s,项目是java项目,流程为从gitlab拉取项目代码到jenkins,jenkins通过maven将项目代码打成jar包,通过dockerfile构建jdk环境的镜像并把jar包放到镜像中启动,构建好的镜像通…...

Ubuntu安装企业微信

Ubuntu安装企业微信_ubuntu下安装企业微信_星光2020的博客-CSDN博客 在Ubuntu环境安装企业微信可以参考 https://github.com/zq1997/deepin-wine 所述的方法 首先运行 $ wget -O- https://deepin-wine.i-m.dev/setup.sh | sh 然后就可以像安装其它软件一样安装企业微信或其它…...

Prometheus 的应用服务发现及黑河部署等

目录 promtool检查语法 部署Prometheus Server 检查语法是否规范 部署node-exporter 部署Consul 直接请求API进行服务注册 使用register命令注册服务(建议使用) 单个和多个注册,多个后面多加了s 在Prometheus上做consul的服务发现 部署…...

JAVA SE -- 第十二天

(全部来自“韩顺平教育”) 常用类 一、包装类 1、包装类的分类 ①针对八种基本数据类型相应的引用类型--包装类 ②有了类的特点,就可以调用类中的方法 ③ 基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintInteger…...

实战:工作中对并发问题的处理

大家好,我是 方圆。最近在接口联调时发生了数据并发修改问题,我想把这个问题讲解一下,并把当时提出的解决方案进行实现,希望它能在大家以后在遇到同样的问题时提供一些借鉴和思考的方向。原文还是收录在我的 Github: enthusiasm 中…...

腾讯云Cloud Studio:基于Claude快速完成Excel工资自动核算

目录 1 什么是Cloud Studio?2 注册与代码管理2.1 账号注册2.2 Git关联 3 实战:Excel工资自动核算3.1 创建项目与配置3.2 “念咒师”Claude GPT3.3 代码编写与运行 1 什么是Cloud Studio? Cloud Studio是腾讯云为开发者提供的一个基于浏览器的…...

Spring Boot OAuth2 快速入门示例

系统要求 Spring Authorization Server 需要JDK1.8及以上版本。 项目搭建 使用在线项目初始化器 https://start.spring.io/ 生成项目[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ljKbMI4H-1690726855433)(images/screenshot_1690602511482.png)…...

MethodInterceptor

目录 1 MethodInterceptor 1.1 HandleSync 1.2 HandleException 1.3 /// This will be called via Reflection MethodInterceptor HandleSync private void HandleSync(IReadOnlyList<MethodFilterAttribute> filterAttributes, IReadOnlyList<ExceptionFilte…...

PID模块化__以stm32直流电机速度为例

文章目录 前言一、相关PID源码.c.h 二、如何使用1.创建变量2.初始化3.运算4.修改pid参数 总结 前言 本篇使用到的基于这个STM32CubeMX 直流电机PID速度控制、HAL库、cubemx、PID、速度控制、增量式 由于上次使用的pid没有模块化&#xff0c;当多出使用pid的时候就会很麻烦 所以…...

Java ~ Collection/Executor ~ DelayQueue【总结】

前言 文章 相关系列&#xff1a;《Java ~ Collection【目录】》&#xff08;持续更新&#xff09;相关系列&#xff1a;《Java ~ Executor【目录】》&#xff08;持续更新&#xff09;相关系列&#xff1a;《Java ~ Collection/Executor ~ DelayQueue【源码】》&#xff08;学…...

前端高级面试题-安全相关

1 XSS 跨⽹站指令码&#xff08;英语&#xff1a; Cross-site scripting &#xff0c;通常简称为&#xff1a; XSS &#xff09;是⼀种⽹站应⽤程式的安全漏洞攻击&#xff0c;是代码注⼊的⼀种。 它允许恶意使⽤者将程式码注⼊到⽹⻚上&#xff0c;其他使⽤者在观看⽹⻚时就会…...

【前缀和】560.和为 K 的子数组

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 和为K的子数组 题目:示例:题解&#xff1a;解法一:解法二: 题目: 示例: 题解&#xff1a; 解法一: 暴力解法:我们很容易想到通过两个for循环去遍…...

【Docker】安全及日志管理

安全及日志管理 Docker 安全及日志管理一&#xff1a;Docker 容器与虚拟机的区别1. 隔离与共享2. 性能与损耗 二&#xff1a;Docker 存在的安全问题1.Docker 自身漏洞2.Docker 源码问题 三&#xff1a;Docker 架构缺陷与安全机制1. 容器之间的局域网攻击2. DDoS 攻击耗尽资源3.…...

基于x-scan扫描线的3D模型渲染算法

基于x-scan算法实现的z-buffer染色。c#语言&#xff0c;.net core framework 3.1运行。 模型是读取3D Max的obj模型。 x-scan算法实现&#xff1a; public List<Vertex3> xscan() {List<Vertex3> results new List<Vertex3>();SurfaceFormula formula g…...

LeetCode36.Valid-Sudoku<有效的数独>

题目&#xff1a; 思路&#xff1a; 这题并不难&#xff0c;它类似于N皇后问题。在N皇后问题中&#xff0c;行&#xff0c;列&#xff0c;对角线&#xff0c;写对角线&#xff0c;都不能出现连续的皇后。 本题类似&#xff0c;不过他是行&#xff0c;列&#xff0c;还有一个B…...

Linux中的pause函数

2023年7月29日&#xff0c;周六上午 函数原型 在Linux中&#xff0c;pause()函数用于使当前进程暂停执行&#xff0c;直到接收到一个信号。 #include <unistd.h>int pause(void);pause()函数不接受任何参数。 通常&#xff0c;pause()函数用于编写简单的信号处理程序&…...

CommonCollections6链分析

前面和CC1一样 优点是不限制jdk版本和cc的版本 先开一个ChainedTransformer 然后创LazyMap 我们顺便执行一下避免上面写错 能弹计算器 没问题 后面就是CC6不同的地方了 我们需要一个TiedMapEntry 因为需要一个类调用了get方法 在TiedMapEntry的getValue()方法中调用了get()…...

优化基于tcp,socket的ftp文件传输程序

原始程序&#xff1a; template_ftp_server_old.py&#xff1a; import socket import json import struct import os import time import pymysql.cursorssoc socket.socket(socket.AF_INET, socket.SOCK_STREAM) HOST 192.168.31.111 PORT 4101 soc.bind((HOST,PORT)) p…...

CLaMP技术深度解析:对比学习如何实现语言与音乐的完美融合

CLaMP技术深度解析&#xff1a;对比学习如何实现语言与音乐的完美融合 【免费下载链接】muzic 这是一个微软研究院开发的音乐生成AI项目。适合对音乐、音频处理以及AI应用感兴趣的开发者、学生和研究者。特点是使用深度学习技术生成音乐&#xff0c;具有较高的创作质量和听觉体…...

二手破损手机涨价,业余 NAS 玩家如何破局?

最近打开手机回收 App&#xff0c;发现家里那台屏幕碎成渣、开不了机的旧安卓机&#xff0c;居然能卖一百多&#xff0c;甚至两三百。你可能会想&#xff1a;这是天上掉馅饼&#xff0c;还是 NAS 玩家的“矿难”前兆&#xff1f; 作为一名业余 NAS 玩家&#xff0c;我正好踩在这…...

如何一站式管理Mac周边所有设备的电池电量:AirBattery终极指南

如何一站式管理Mac周边所有设备的电池电量&#xff1a;AirBattery终极指南 【免费下载链接】AirBattery Get the battery level of all your devices on your Mac and put them on the Dock / Status Bar / Widget! && 在Mac上获取你所有设备的电量信息并显示在Dock / …...

Vulnhub靶机实战:Momentum-2渗透测试全流程解析

1. 靶机环境搭建与网络配置 Momentum-2是Vulnhub平台上经典的Web渗透测试靶机&#xff0c;模拟了真实环境中常见的漏洞组合。我们先从最基本的虚拟机配置开始说起。下载完OVA文件后&#xff0c;用VMware Workstation导入时会遇到一个小坑——系统会提示"重试"&#…...

Qwen3字幕生成工具实战:快速处理会议录音,输出带时间戳字幕

Qwen3字幕生成工具实战&#xff1a;快速处理会议录音&#xff0c;输出带时间戳字幕 1. 会议录音转字幕的痛点与解决方案 处理会议录音是许多职场人士的日常任务。传统方法需要先听录音&#xff0c;再手动记录内容&#xff0c;最后还要逐句对齐时间轴&#xff0c;整个过程耗时…...

暗黑破坏神2终极单机优化:PlugY生存工具包完整指南

暗黑破坏神2终极单机优化&#xff1a;PlugY生存工具包完整指南 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 厌倦了暗黑破坏神2单机模式的储物空间限制&#xff1f…...

Java函数冷启动优化不是“选配”,而是SLA硬指标!一线大厂SRE团队正在紧急落地的6项Kubernetes调度增强策略

第一章&#xff1a;Java函数冷启动的本质与SLA倒逼机制Java函数冷启动并非单纯“首次加载慢”的表象&#xff0c;而是JVM生命周期、类加载机制、字节码验证、即时编译&#xff08;JIT&#xff09;预热及运行时元数据初始化等多层系统行为在无预热上下文下的集中爆发。当Serverl…...

全学科适用AI写作辅助网站排行榜(2026 实测推荐)

基于功能完整性、学术适配性、用户反馈及操作便捷性&#xff0c;以下是当前主流AI论文写作工具的实测排名&#xff0c;按综合使用价值从高到低依次呈现&#xff0c;并附上各平台的核心优势与适用人群。&#x1f3c6; 第一梯队&#xff1a;全流程学术解决方案&#xff08;★★★…...

暗黑破坏神2存档编辑器的创意实验:开启你的游戏世界无限可能

暗黑破坏神2存档编辑器的创意实验&#xff1a;开启你的游戏世界无限可能 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾想过在暗黑破坏神2的世界里创造属于自己的传奇&#xff1f;当传统的游戏进程无法满足你的创意需求…...

STM32F407+UCOSIII实战:手把手教你从零搭建一个能走会避障的六足机器人(附完整源码/PCB/Solidworks图纸)

STM32F407UCOSIII实战&#xff1a;从零构建智能六足机器人全流程解析 六足机器人作为仿生机器人中的经典形态&#xff0c;其稳定性和地形适应能力远超轮式与四足结构。本文将带你完整实现一个基于STM32F407和UCOSIII的智能六足机器人&#xff0c;涵盖机械设计、电路开发、运动…...