15、string
1.string是什么?
Go中的字符串是一个字节的切片,可以通过将其内容封装起在""中来创建字符串。Go中的的字符串是Unicode兼容的并且是UTF-8编码的。
2.string的使用
/**
* @author ly (个人博客:https://www.cnblogs.com/qbbit)
* @date 2023/5/2 11:32
* @tags 喜欢就去努力的争取
*/
package main
import "fmt"
func main() {
// 定义字符串
var s1 string = "hello"
var s2 string = `hello 世界` // 一个中文三个字节
println(s1)
println(s2)
// 字符串的长度:也就是字节的个数
fmt.Println(len(s1))
fmt.Println(len(s2))
// 获取某个字节
fmt.Println(s1[0])
fmt.Println(s2[0])
a := 'h'
b := 104
fmt.Printf("%c,%c,%c,%c\n", s1[0], s2[0], a, b)
// 遍历字符串
for i, v := range s2 {
fmt.Printf("%d,%c\t", i, v)
}
println("================================")
for i := 0; i < len(s2); i++ {
fmt.Printf("%d,%c \t", i, s2[i])
}
println("=====================")
// 字节转字符串
slice1 := []byte{65, 66, 67, 68, 69}
s3 := string(slice1)
fmt.Println(s3)
// 字符串转字节
s4 := "ABCDE"
slice2 := []byte(s4)
fmt.Println(slice2)
// 字符串是不允许修改的
// s4[0] = 'L'
}
3.strings:字符串的常用函数
s5 := `hello world`
// 判断指定的字符串是否存在
b1 := strings.Contains(s5, "hel")
fmt.Println("b1:", b1)
// 判断指定的字符串任意一个字符是否存在
b2 := strings.ContainsAny(s5, "abc")
fmt.Println("b2:", b2)
// 统计指定的字符串出现的个数
count := strings.Count(s5, "wo")
fmt.Println("count:", count)
// 判断字符串是否以指定的字符串开头
prefix := strings.HasPrefix(s5, "ld")
fmt.Println("prefix:", prefix)
// 判断字符串是否以指定的字符串结尾
suffix := strings.HasSuffix(s5, "he")
fmt.Println("suffix:", suffix)
// 获取指定字符串首次出现的索引位置
index := strings.Index(s5, "l")
fmt.Println("index:", index)
// 获取指定字符串最后一次出现的索引位置
lastIndex := strings.LastIndex(s5, "o")
fmt.Println("lastIndex:", lastIndex)
// 字符串拼接
sArr := []string{"he", "llo", "wo", "rld"}
join := strings.Join(sArr, "-")
fmt.Println(join)
// 字符串切割
s6 := "123abcABC你好中国"
split := strings.Split(s6, "")
for _, v := range split {
fmt.Println(v)
}
// 将指定的字符串重复拼接n次
repeat := strings.Repeat("hello", 5)
fmt.Println(repeat)
// 替换;n:指定替换的字符个数,-1全替换
replace := strings.Replace(s5, "l", "*", 1)
replace2 := strings.Replace(s5, "l", "*", -1)
fmt.Println(replace)
fmt.Println(replace2)
// 大小写转换
lower := strings.ToLower(s5)
upper := strings.ToUpper(s5)
fmt.Println(lower)
fmt.Println(upper)
/**
截取子字符串 类似Java语言中的substring
*/
s9 := "我是中国人"
subStr := s9[6:]
fmt.Println(subStr)
15、string的更多相关文章
- 15_常用API_第15天(Object、String、StringBuffer、用户登陆注册)_讲义
今日内容介绍 1.Object 2.String 3.StringBuilder 01API概念 A:API(Application Programming Interface) 应用程序编程接口 B ...
- ABP(现代ASP.NET样板开发框架)系列之15、ABP应用层——应用服务(Application services)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之15.ABP应用层——应用服务(Application services) ABP是“ASP.NET Boiler ...
- const char*、char*、char* const、char[]、string的区别
1.const char* p: p is a pointer to const char(char const* p 一样) 意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2. ...
- es6笔记1^_^let、string、number、math
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本 ...
- STL学习:STL库vector、string、set、map用法
本文仅介绍了如何使用它们常用的方法. vector 1.可随机访问,可在尾部插入元素:2.内存自动管理:3.头文件#include <vector> 1.创建vector对象 一维: (1 ...
- JavaScript数据类型-2---Undefined、 Null、 Boolean、 Number、 String.
学习目标 1.掌握JavaScript的数据类型 2.掌握typeof操作符 3.掌握Undefined 4.掌握null JavaScript的数据类型 ECMAScript中有5种简单数据类型(也 ...
- java日期互转:LocalDateTime、String、TimeStamp、Long、Instant、Date
由于java版本的迭代,一个使用java开发的项目中可能出现多种日期对象,例如LocalDateTime.LocalDate.Date,不像C#只有一个DateTime,因此在各种日期格式或者对象之间 ...
- 第二课补充01——redis-cli命令行详解、string类型、list类型、hash类型命令操作详解
一. redis-cli命令行参数 1.-x参数:从标准输入读取一个参数: [问题] [解决] 因为echo命令是默认带有回车\n的,不带回车需要echo –n命令: echo -n "ha ...
- asp.net MVC Model 类的主键 int类型、string类型、GUID类型。
在使用asp.net mvc进行定义 模型类的时候,一般情况下,我们都会定义一个属性为 int iD{get;set;} 或为int ClassNameID {get;set;},在这种情况下 1.I ...
- C++ 数字、string 简便互转
一.数字转为 string 类型 借用 sprintf 函数: char buffer[256]; int counter = 10; sprintf(buffer,"%04i", ...
随机推荐
- WPF学习 - 用鼠标移动、缩放、旋转图片(1)
1. 需求 其实我的需求很简单.就是想做一个图片查看器,可以通过鼠标来平移.缩放.旋转图片. 2. 解决思路: WPF中的UIElement提供了RenderTransform属性,用于承载各种Tra ...
- Go运算操作符全解与实战:编写更高效的代码!
本文全面探讨了Go语言中的各类运算操作符,从基础的数学和位运算到逻辑和特殊运算符.文章旨在深入解析每一种运算操作符的工作原理.应用场景和注意事项,以帮助开发者编写更高效.健壮和可读的Go代码. 简介 ...
- 关于TCP 四次挥手过程中的reset包问题
数据包过程 TCP状态机转换过程 客户端在接受到第32个数据包之后,应该发送1个对FIN的ACK数据包,然而客户端缺直接连续发送了3个Rest数据包36~38,客户端并未进入time wait阶段,直 ...
- java线程的interrup、tUninterruptibles.sleepUninterruptibly和sleep、wait
参考: (1)https://blog.csdn.net/qq_36031640/article/details/116696685 (2)https://blog.csdn.net/liuxiao7 ...
- 从 5s 到 0.5s!CompletableFuture 异步任务优化技巧,确实优雅!
一个接口可能需要调用 N 个其他服务的接口,这在项目开发中还是挺常见的.举个例子:用户请求获取订单信息,可能需要调用用户信息.商品详情.物流信息.商品推荐等接口,最后再汇总数据统一返回. 如果是串行( ...
- 小札 Combinatorics 2
对于 Newton Expansion,式子本身的证明其实无甚可翻新的花样,但是题还是很有意思的.比如 codeforces - 1332E Height All the Same 这个. 首先给出几 ...
- 【网络爬虫笔记】爬虫Robots协议语法详解
Robots协议是指一个被称为Robots Exclusion Protocol的协议.该协议的主要功能是向网络蜘蛛.机器人等搜索引擎爬虫提供一个标准的访问控制机制,告诉它们哪些页面可以被抓取,哪些页 ...
- linux安装clickhouse
linux安装clickhouse 1. 系统要求 ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运 ...
- npm install xxx 后加上-s、-d、-g之间的区别?
1.npm install xxx -s npm install xxx -s.npm install xxx -S是npm install xxx --save的简写形式 局部安装,记录在packa ...
- [最佳实践]配置sshd只允许sftp登录
sftp 是 Secure File Transfer Protocol 的缩写,即安全文件传送协议,可为传输文件提供一种安全的加密方法. sftp 为 SSH 的一部分,由于这种传输方式使用了加密/ ...