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

Go语言字符串类型详解

1. 定义字符串类型

package mainimport ("fmt");func main() {var str1 string = "你好 GoLang 1"var str2 = "你好 GoLang 2"str3 := "你好 GoLang 3"fmt.Printf("%v--%T\n", str1, str1)// 你好 GoLang 1--stringfmt.Printf("%v--%T\n", str2, str2)// 你好 GoLang 2--stringfmt.Printf("%v--%T\n", str3, str3)// 你好 GoLang 1--string
}

2. 字符串转义符

package mainimport ("fmt");func main() {str1 := "this \n is string" fmt.Println(str1)// this //   is stringstr2 := "C:\\Go\\bin"fmt.Println(str2)// C:\Go\bin}

3. 多行字符串

package main
import ("fmt");
func main() {str := `this is athis is bthis is cthis is dthis is e`fmt.Println(str)// this is a        //     this is b//     this is c//     this is d//     this is e
}

4. 求字符串长度

package mainimport ("fmt");func main() {var str1 = "aaaa"fmt.Println(len(str1))// 4var str2 = "你好" fmt.Println(len(str2))// 6
}

5. 拼接字符串

package mainimport ("fmt");func main() {str1 := "你好"str2 := "Golang"str3 := str1 + str2fmt.Println(str3)// 你好Golangstr4 := "你好"str5 := "世界"str6 := fmt.Sprintf("%v %v", str4, str5)fmt.Println(str6)// 你好 世界str7 := "反引号间换行将被作为字符串中的换行," +"文本将会原样输出," +"但是所有的转义字符均无效"fmt.Println(str7)// 反引号间换行将被作为字符串中的换行,文本将会原样输出,但是所有的转义字符均无效}

6. 字符串分割

package main
import ("fmt";"strings")
func main() {var str = "123-456-789"arr := strings.Split(str, "-")fmt.Println(arr)// [123 456 789] // 返回一个切片
}

7. 切片链接成字符串

package mainimport ("fmt";"strings");func main() {var str1 = "123-456-789"arr1 := strings.Split(str1, "-")str2 := strings.Join(arr1, "*")fmt.Println(str2) // 123*456*789arr2 := []string{"php", "java", "golang"} str3 := strings.Join(arr2, "-")fmt.Printf("%v - %T", str3, str3)// php-java-golang - string}

8. 判断是否包含

package mainimport ("fmt";"strings");func main() {str1 := "this is str"str2 := "this"flag1 := strings.Contains(str1, str2)fmt.Println(flag1)// true str3 := "thisxxx"flag2:= strings.Contains(str1, str3)fmt.Println(flag2)// false}

9. 前缀/后缀判断

package mainimport ("fmt";"strings");func main() {str := "this is str"str1 := "this"flag1 := strings.HasPrefix(str, str1)fmt.Println(flag1)// truestr2 := "str"flag2 := strings.HasSuffix(str, str2)fmt.Println(flag2)// true}

10. 从前查找字符串位置

package mainimport ("strings");func main() {str := "this is str"str1 := "is"num1 := strings.Index(str, str1)println(num1) // 2str2 := "xxx"num2 := strings.Index(str, str2)println(num2) // -1 }

11. 从后查找字符串位置

package mainimport ("strings");func main() {str1 := "this is str"str2 := "is"num := strings.LastIndex(str1, str2)println(num)  // 5
}
http://www.lryc.cn/news/2396043.html

相关文章:

  • 长安链智能合约命令解析(全集)
  • 一、OpenCV的基本操作
  • 裂缝仪在线监测装置:工程安全领域的“实时守卫者”
  • 【论文精读】2024 ECCV--MGLD-VSR现实世界视频超分辨率(RealWorld VSR)
  • SpringBoot简单体验
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论系统负载均衡设计方法(包括解题思路和参考素材)
  • 2025年通用 Linux 服务器操作系统该如何选择?
  • Azure devops 系统之五-部署ASP.NET web app
  • Hadoop是什么
  • 学习路之PHP--easyswoole_panel安装使用
  • 结合 AI 编程,让前端开发更简单:趋势、方法与实践
  • 【拓扑排序】P6560 [SBCOI2020] 时光的流逝|普及+
  • SSRF 接收器
  • 【设计模式】责任链
  • unix/linux source 命令,其高级使用
  • 邮件验证码存储推荐方式
  • Allegro 输出生产数据详解
  • FastAPI MCP 快速入门教程
  • uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标
  • 【Redis】基本命令
  • 爬虫工具链的详细分类解析
  • 鸿蒙编译ffmpeg库
  • 哈希:闭散列的开放定址法
  • Unity-QFramework框架学习-MVC、Command、Event、Utility、System、BindableProperty
  • FPGA实现CNN卷积层:高效窗口生成模块设计与验证
  • LeetCode 3068.最大节点价值之和:脑筋急转弯+动态规划(O(1)空间)
  • 2.2HarmonyOS NEXT高性能开发技术:编译优化、内存管理与并发编程实践
  • BLIP-2
  • 【Go-6】数据结构与集合
  • 支持向量机(SVM)例题