GO字符串练习题实例代码

 更新时间:2026年03月12日 08:24:26   作者:呆萌很  
字符串在Go语言中是一个不可变的字节序列,通常用来表示文本,这篇文章主要介绍了GO字符串练习题的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

提取身份证号关键信息

题目描述

在身份信息处理中,需要从身份证号"110101199001011234"中提取生日年份和最后 4 位数字,用切片综合操作得到 "19901234"。

输出示例

19901234

实现代码

package main

import "fmt"

func main() {
	s := "110101199001011234"
	fmt.Print(s[6:10], s[14:18])
}

提取核心品质词汇

题目描述

从语句"忠诚铸魂,勤奋立业,创新强国,奉献为民"中,按指定索引提取字符,组合成 "忠诚勤奋创新奉献"。

输出示例

忠诚勤奋创新奉献

实现代码

package main

import "fmt"

func main() {
	s := "忠诚铸魂,勤奋立业,创新强国,奉献为民"
	s1 := []rune(s)
	fmt.Print(string(s1[0:2]), string(s1[5:7]), string(s1[10:12]), string(s1[15:17]))
}

订单编号生成

题目描述

电商系统生成订单编号时,需要拼接固定前缀、日期和随机数,分别用三种方式实现。

  • 定义变量:prefix = "ORD"(前缀)、date = "20260310"(日期)、randomNum = 8899(随机数)
  • 用加号方式拼接成格式:"ORD-20260310-8899"
  • fmt.Sprintf拼接相同格式的订单编号
  • strings.Builder逐段拼接相同格式的订单编号

输出示例

+生成订单号:ORD-20260310-8899

Sprintf生成订单号:ORD-20260310-8899

Builder生成订单号:ORD-20260310-8899

实现代码

package main

import (
	"fmt"
	"strings"
)

func main() {
	// 定义订单编号组成部分
	prefix := "ORD"
	date := "20260310"
	randomNum := 8899
    // 1. 加号方式拼接
    fmt.Println(prefix + "-" + date + "-" + strconv.Itoa(randomNum))

	// 2. Sprintf方式拼接订单号
	orderIdSprintf := fmt.Sprintf("%s-%s-%d", prefix, date, randomNum)
	fmt.Printf("Sprintf生成订单号:%s\n", orderIdSprintf)

	// 3. Builder方式逐段拼接
	var builder strings.Builder
	builder.WriteString(prefix)
	builder.WriteString("-")
	builder.WriteString(date)
	builder.WriteString("-")
	builder.WriteString(fmt.Sprintf("%d", randomNum))
	orderIdBuilder := builder.String()
	fmt.Printf("Builder生成订单号:%s\n", orderIdBuilder)
}

拼接日志

题目描述

日志系统需要拼接多条固定日志内容,strings.Builder在多次拼接时比Sprintf更高效,演示多段短字符串的拼接场景。

  • 定义 4 个日志片段:logPart1 = "【INFO】"logPart2 = "服务启动:"logPart3 = "api-server"logPart4 = "端口:8080"
  • fmt.Sprintf拼接成完整日志:"【INFO】服务启动:api-server 端口:8080"
  • strings.Builder依次拼接 4 个片段(中间加空格)
  • 输出两种方式的完整日志

输出示例

Sprintf拼接日志:【INFO】服务启动:api-server 端口:8080

Builder拼接日志:【INFO】服务启动:api-server 端口:8080

实现代码

package main

import (
	"fmt"
	"strings"
)

func main() {
	// 定义日志片段
	logPart1 := "【INFO】"
	logPart2 := "服务启动:"
	logPart3 := "api-server"
	logPart4 := "端口:8080"

	// 1. Sprintf方式拼接长文本
	logSprintf := fmt.Sprintf("%s%s%s %s", logPart1, logPart2, logPart3, logPart4)
	fmt.Printf("Sprintf拼接日志:%s\n", logSprintf)

	// 2. Builder方式逐段拼接
	var builder strings.Builder
	builder.WriteString(logPart1)
	builder.WriteString(logPart2)
	builder.WriteString(logPart3)
	builder.WriteString(" ")
	builder.WriteString(logPart4)
	logBuilder := builder.String()
	fmt.Printf("Builder拼接日志:%s\n", logBuilder)
}

分割与拼接操作

题目描述

  • 定义 tags = "基础,进阶,实战"
  • strings.Split 按逗号分割,strings.Join 用竖线拼接
  • 输出拼接结果

输出示例

拼接后标签:基础|进阶|实战

实现代码

package main

import (
	"fmt"
	"strings"
)

func main() {
	tags := "基础,进阶,实战"
	// 分割
	tagSlice := strings.Split(tags, ",")
	// 拼接
	joinTags := strings.Join(tagSlice, "|")
	
	fmt.Printf("拼接后标签:%s\n", joinTags)
}

包含判断与子串替换

题目描述

  • 定义 text = "学习Go,用好Go"
  • strings.Contains 判断是否含 "Go",strings.Replace 替换所有 "Go" 为 "Go 语言"
  • 输出判断结果和替换后文本

输出示例

包含"Go":true

替换后:学习Go语言,用好Go语言

实现代码

package main

import (
	"fmt"
	"strings"
)

func main() {
	text := "学习Go,用好Go"
	// 判断包含
	hasGo := strings.Contains(text, "Go")
	// 替换所有(n=-1)
	replaceText := strings.Replace(text, "Go", "Go语言", -1)
	
	fmt.Printf("包含\"Go\":%t\n", hasGo)
	fmt.Printf("替换后:%s\n", replaceText)
}

总结 

到此这篇关于GO字符串练习题的文章就介绍到这了,更多相关GO字符串练习题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解golang中的method

    详解golang中的method

    这篇文章主要介绍了golang中的method的相关资料,帮助大家更好的理解和使用golang,感兴趣的朋友可以了解下
    2021-01-01
  • Go语言导出内容到Excel的方法

    Go语言导出内容到Excel的方法

    这篇文章主要介绍了Go语言导出内容到Excel的方法,涉及Go语言操作excel的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • golang使用sync.singleflight解决热点缓存穿透问题

    golang使用sync.singleflight解决热点缓存穿透问题

    在go的sync包中,有一个singleflight包,里面有一个 singleflight.go文件,代码加注释,一共200行出头,通过 singleflight可以很容易实现缓存和去重的效果,避免重复计算,接下来我们就给大家详细介绍一下sync.singleflight如何解决热点缓存穿透问题
    2023-07-07
  • golang 将[]byte转成16进制的实现

    golang 将[]byte转成16进制的实现

    这篇文章主要介绍了golang 将[]byte转成16进制的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 浅谈GoLang几种读文件方式的比较

    浅谈GoLang几种读文件方式的比较

    这篇文章主要介绍了浅谈GoLang几种读文件方式的比较,一般来说常用的有三种。使用Read加上buffer,使用bufio库和ioutil 库,非常具有实用价值,需要的朋友可以参考下
    2019-01-01
  • Go语言入门exec的基本使用示例

    Go语言入门exec的基本使用示例

    这篇文章主要为大家介绍了Go语言入门exec在go语言中的基本使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 详解go语言单链表及其常用方法的实现

    详解go语言单链表及其常用方法的实现

    这篇文章主要介绍了详解go语言单链表及其常用方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Golang中的信号(Signal)机制详解

    Golang中的信号(Signal)机制详解

    Signal 是一种操作系统级别的事件通知机制,进程可以响应特定的系统信号,这些信号用于指示进程执行特定的操作,如程序终止、挂起、恢复等,Golang 的标准库 os/signal 提供了对信号处理的支持,本文将详细讲解 Golang 是如何处理和响应系统信号的,需要的朋友可以参考下
    2024-01-01
  • go代码实现买房贷款月供计算的方法

    go代码实现买房贷款月供计算的方法

    今天小编就为大家分享一篇关于go代码实现买房贷款月供计算的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • golang为什么要统一错误处理

    golang为什么要统一错误处理

    这篇文章主要介绍了golang为什么要统一错误处理,统一错误处理的目的是为了前端开发接收到后端的statuscode,之后便于前端逻辑上开发以及开发,下文具体操作过程需要的小伙伴可以参考一下
    2022-04-04

最新评论