go的字符串

简介: go的字符串

一、字符串定义、长度、获取指定字节

package main
 
import "fmt"
 
func main() {
  str := "hello"
  fmt.Println(str)
  //获取字符串的长度
  fmt.Println("字符串的长度:", len(str))
  //  获取指定字节
  fmt.Println("字节打印", str[0])
  fmt.Printf("字符打印%c\n", str[0])
  for i := 0; i < len(str); i++ {
    fmt.Printf("%c ", str[i])
  }
  fmt.Println()
  for i, v := range str {
    fmt.Print(i, " ")
    fmt.Printf("%c ", v)
    fmt.Println()
  }
}
hello
字符串的长度: 5
字节打印 104
字符打印h
h e l l o
0 h
1 e
2 l
3 l
4 o

二、字符串与其他语言的区别

//go string默认为空串
func TestString(t *testing.T) {
  var s string
  t.Log("*" + s + "*")
  t.Log(len(s))
  //  字符串空值判断
  if s == "" {
 
  }
  if len(s) == 0 {
  
  }
}
=== RUN   TestString
    type_test.go:31: **
    type_test.go:32: 0
--- PASS: TestString (0.00s)
PASS

三、字符串分割、连接、转换

package string_func
 
import (
  "strconv"
  "strings"
  "testing"
)
 
func TestStringFn(t *testing.T) {
  s := "A,B,C"
  //分割字符串
  parts := strings.Split(s, ",")
  for _, part := range parts {
    t.Log(part)
  }
  //字符串链接
  t.Log(strings.Join(parts, "-"))
}
 
//字符串转换
func TestConv(t *testing.T) {
  //整数转字符串
  s := strconv.Itoa(10)
  t.Logf("s类型%[1]T,值%[1]s", s)
  t.Log("str" + s)
  num, _ := strconv.Atoi("10")
  //字符串转整数
  t.Logf("num类型%[1]T,值%[1]d", num)
}
=== RUN   TestStringFn
    string_func_test.go:14: A
    string_func_test.go:14: B
    string_func_test.go:14: C
    string_func_test.go:17: A-B-C
--- PASS: TestStringFn (0.00s)
=== RUN   TestConv
    string_func_test.go:24: s类型string,值10
    string_func_test.go:25: str10
    string_func_test.go:28: num类型int,值10
--- PASS: TestConv (0.00s)
PASS

四、补充

package string_test_test
 
import "testing"
 
func TestString(t *testing.T) {
  var s string
  s = "中"
  //长度为字节长度,编码为utf8
  t.Log(len(s))
  //  取出字符串中的utf8字符
  c := []rune(s)
  t.Logf("c的长度%d,c的unicode%x", len(c), c[0])
}
 
func TestSringToRune(t *testing.T) {
  s := "海晏河清"
  t.Logf("字符串长度%d", len(s))
  t.Logf("utf8编码字符长度%d", len([]rune(s)))
  for _, e := range s {
    //格式化第一个参数
    t.Logf("%[1]c %[1]d", e)
  }
}
=== RUN   TestString
    string_test.go:9: 3
    string_test.go:12: c的长度1,c的unicode4e2d
--- PASS: TestString (0.00s)
=== RUN   TestSringToRune
    string_test.go:17: 字符串长度12
    string_test.go:18: utf8编码字符长度4
    string_test.go:21: 海 28023
    string_test.go:21: 晏 26191
    string_test.go:21: 河 27827
    string_test.go:21: 清 28165
--- PASS: TestSringToRune (0.00s)
PASS
 
 
进程 已完成,退出代码为 0
目录
相关文章
|
2月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
41 6
|
2月前
|
并行计算 Go C++
2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)
【2月更文挑战第19天】2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)
30 1
|
2月前
|
安全 Java 编译器
Go 字符串拼接方式
Go 字符串拼接方式
34 0
|
8月前
|
Go
go string to int 字符串与整数型的互换
go string to int 字符串与整数型的互换
41 0
|
10月前
|
存储 编译器 Go
Go 语言内置类型全解析:从布尔到字符串的全维度探究
Go 语言内置类型全解析:从布尔到字符串的全维度探究
61 0
|
2月前
|
供应链 Go C语言
掌握Go语言:探索Go语言基础,字符串连接、关键字、空格、格式化字符串的重要性(7)
掌握Go语言:探索Go语言基础,字符串连接、关键字、空格、格式化字符串的重要性(7)
|
1月前
|
Go
【golang】Go 判断字符串是否包含指定字符
【golang】Go 判断字符串是否包含指定字符
18 1
|
2月前
|
Go
|
2月前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
2月前
|
存储 Go 开发者
Golang深入浅出之-Go语言字符串操作:常见函数与面试示例
【4月更文挑战第20天】Go语言字符串是不可变的字节序列,采用UTF-8编码。本文介绍了字符串基础,如拼接(`+`或`fmt.Sprintf()`)、长度与索引、切片、查找与替换(`strings`包)以及转换与修剪。常见问题包括字符串不可变性、UTF-8编码处理、切片与容量以及查找与替换的边界条件。通过理解和实践这些函数及注意事项,能提升Go语言编程能力。
49 0