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", ...
随机推荐
- mac安装mysql8.0
1.进入下载页 历史版本:https://downloads.mysql.com/archives/community/ 最新版本:https://dev.mysql.com/downloads/my ...
- 如何通过API接口获取微店的商品详情
微店是一款电商平台,对于商家而言,了解商品详情数据是非常重要的.通过API接口获取微店的商品详情,可以让商家更加便捷地管理和分析商品数据.下面就让我们详细了解一下如何通过API获取微店的商品详情. 第 ...
- 第1章 Git概述
第1章 Git概述 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目. Git 易于学习,占地面积小,性能极快. 它具有廉价的本地库,方便的暂存区域和多个工作流 ...
- SpringBoot项目优雅停机+Pid暴力停机
bootstrap.yaml配置项目的pid输出位置 spring: pid: file: F:/cloud-nacos/cloud_gateway/application.pid springboo ...
- Matlab 实现连续PID环节与标记系统-3dB点
Matlab 实现连续PID环节 连续PID环节传递函数: \[\frac{O(s)}{I(s)} = K_P \cdot \left( 1 + \frac{K_{I}}{s} + K_D\cdot ...
- python~windows自动化工具 uiautomation库
微软提供了关于自动化操作PC端桌面应用程序的工具,官方描述为: Microsoft UI Automation is an accessibility framework that enables W ...
- MongoDB 中的锁分析
MongoDB 中的锁 前言 MongoDB 中锁的类型 锁的让渡释放 常见操作使用的锁类型 如果定位 MongoDB 中锁操作 1.查询运行超过20S 的请求 2.批量删除请求大于 20s 的请求 ...
- Centos7安装msf
文章来自:https://blog.csdn.net/weixin_44268918/article/details/129771330 1. 前言在日常使用中,模拟攻击以及测试的时候都是直接使用本地 ...
- [C++]P5024 树形DP 保卫王国
树形DP 保卫王国P5024 前置知识 1.邻接表 + Dfs(深度优先搜索) 2.基础DP(如 01背包 ) 3.最小公共祖先(LCA) LCA我有写过Blog 首先解读一下题意 城市即为节点 每个 ...
- maven2介绍(转)
http://ttitfly.iteye.com/blog/152557 Maven2主要配置文件:pom.xml和settings.xml. POM是Maven的核心对象模型,对于项目,一般只需要p ...