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", ...
随机推荐
- ATtiny88初体验(四):看门狗
ATtiny88初体验(四):看门狗 ATtiny88单片机的看门狗使用内部独立的128KHz时钟源,拥有3种工作模式: Interrupt模式:超时产生中断: System Reset模式:超时产生 ...
- 分布式测试插件 pytest-xdist 使用详解
使用背景: 大型测试套件:当你的测试套件非常庞大,包含了大量的测试用例时,pytest-xdist可以通过并行执行来加速整体的测试过程.它利用多个进程或计算机的计算资源,可以显著减少测试执行的时间. ...
- API技术的使用场景
互联网的发展和普及,API技术也变得越来越重要.API是应用程序接口,它是一种连接不同应用程序或系统之间数据交换和通信的方式.API技术不仅提高了不同应用程序之间的互操作性,还加速了应用程序的开发 ...
- Python基础语法--课程笔记
Smiling & Weeping ----我的心是旷野的鸟,在你的眼睛里找到了它的天空 定义和使用类: 1.声明类: class类名: 成员变量,成员函数 2.定义类的对象: 对象名 = 类 ...
- Avalonia开发(一)环境搭建
一.介绍 开源 GitHub:https://github.com/AvaloniaUI/Avalonia/ 多平台支持,包括Windows.mac OS.Linux.iOS.Android.Sams ...
- LUA的一些工具备份
table.unpack遇到的问题 做了个中转的服务, socket+json 传递数据, 通过 {...} 封装不定参数然后 json.encode 传递到其他服务器, 然后其他服务器 json.d ...
- pbjs 无法编码 bytes 类型数据问题的解决方案
问题背景 之前写过一篇<使用脚本收发 protobuf 协议数据>,通过 pbjs 命令可以将 protobuf 二进制数据转换为 json: > pbjs msg.proto -- ...
- 我为什么要从PhoneGap中逃离? 转
我为什么要从PhoneGap中逃离? 摘要:每一位程序员都有自己的技术信仰,我也不例外.但当技术信仰遇到实际工作中的问题时,你又要怎么做呢?还记得刚刚接触HTML5做跨平台开发的时候这样的问题就摆在 ...
- 快速展示原型之Minimal API开发
Minimal API官网地址: https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/minimal-apis/security?vi ...
- Vue之仿百度搜索框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...