GO字符串練習(xí)題實(shí)例代碼
提取身份證號(hào)關(guān)鍵信息
題目描述
在身份信息處理中,需要從身份證號(hào)"110101199001011234"中提取生日年份和最后 4 位數(shù)字,用切片綜合操作得到 "19901234"。
輸出示例
19901234
實(shí)現(xiàn)代碼
package main
import "fmt"
func main() {
s := "110101199001011234"
fmt.Print(s[6:10], s[14:18])
}提取核心品質(zhì)詞匯
題目描述
從語句"忠誠(chéng)鑄魂,勤奮立業(yè),創(chuàng)新強(qiáng)國(guó),奉獻(xiàn)為民"中,按指定索引提取字符,組合成 "忠誠(chéng)勤奮創(chuàng)新奉獻(xiàn)"。
輸出示例
忠誠(chéng)勤奮創(chuàng)新奉獻(xiàn)
實(shí)現(xiàn)代碼
package main
import "fmt"
func main() {
s := "忠誠(chéng)鑄魂,勤奮立業(yè),創(chuàng)新強(qiáng)國(guó),奉獻(xiàn)為民"
s1 := []rune(s)
fmt.Print(string(s1[0:2]), string(s1[5:7]), string(s1[10:12]), string(s1[15:17]))
}訂單編號(hào)生成
題目描述
電商系統(tǒng)生成訂單編號(hào)時(shí),需要拼接固定前綴、日期和隨機(jī)數(shù),分別用三種方式實(shí)現(xiàn)。
- 定義變量:
prefix = "ORD"(前綴)、date = "20260310"(日期)、randomNum = 8899(隨機(jī)數(shù))- 用加號(hào)方式拼接成格式:"ORD-20260310-8899"
- 用
fmt.Sprintf拼接相同格式的訂單編號(hào)- 用
strings.Builder逐段拼接相同格式的訂單編號(hào)
輸出示例
+生成訂單號(hào):ORD-20260310-8899
Sprintf生成訂單號(hào):ORD-20260310-8899
Builder生成訂單號(hào):ORD-20260310-8899
實(shí)現(xiàn)代碼
package main
import (
"fmt"
"strings"
)
func main() {
// 定義訂單編號(hào)組成部分
prefix := "ORD"
date := "20260310"
randomNum := 8899
// 1. 加號(hào)方式拼接
fmt.Println(prefix + "-" + date + "-" + strconv.Itoa(randomNum))
// 2. Sprintf方式拼接訂單號(hào)
orderIdSprintf := fmt.Sprintf("%s-%s-%d", prefix, date, randomNum)
fmt.Printf("Sprintf生成訂單號(hào):%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生成訂單號(hào):%s\n", orderIdBuilder)
}拼接日志
題目描述
日志系統(tǒng)需要拼接多條固定日志內(nèi)容,strings.Builder在多次拼接時(shí)比Sprintf更高效,演示多段短字符串的拼接場(chǎng)景。
- 定義 4 個(gè)日志片段:
logPart1 = "【INFO】"、logPart2 = "服務(wù)啟動(dòng):"、logPart3 = "api-server"、logPart4 = "端口:8080"- 用
fmt.Sprintf拼接成完整日志:"【INFO】服務(wù)啟動(dòng):api-server 端口:8080"- 用
strings.Builder依次拼接 4 個(gè)片段(中間加空格)- 輸出兩種方式的完整日志
輸出示例
Sprintf拼接日志:【INFO】服務(wù)啟動(dòng):api-server 端口:8080
Builder拼接日志:【INFO】服務(wù)啟動(dòng):api-server 端口:8080
實(shí)現(xiàn)代碼
package main
import (
"fmt"
"strings"
)
func main() {
// 定義日志片段
logPart1 := "【INFO】"
logPart2 := "服務(wù)啟動(dòng):"
logPart3 := "api-server"
logPart4 := "端口:8080"
// 1. Sprintf方式拼接長(zhǎng)文本
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 = "基礎(chǔ),進(jìn)階,實(shí)戰(zhàn)"- 用
strings.Split按逗號(hào)分割,strings.Join用豎線拼接- 輸出拼接結(jié)果
輸出示例
拼接后標(biāo)簽:基礎(chǔ)|進(jìn)階|實(shí)戰(zhàn)
實(shí)現(xiàn)代碼
package main
import (
"fmt"
"strings"
)
func main() {
tags := "基礎(chǔ),進(jìn)階,實(shí)戰(zhàn)"
// 分割
tagSlice := strings.Split(tags, ",")
// 拼接
joinTags := strings.Join(tagSlice, "|")
fmt.Printf("拼接后標(biāo)簽:%s\n", joinTags)
}包含判斷與子串替換
題目描述
- 定義
text = "學(xué)習(xí)Go,用好Go"- 用
strings.Contains判斷是否含 "Go",strings.Replace替換所有 "Go" 為 "Go 語言"- 輸出判斷結(jié)果和替換后文本
輸出示例
包含"Go":true
替換后:學(xué)習(xí)Go語言,用好Go語言
實(shí)現(xiàn)代碼
package main
import (
"fmt"
"strings"
)
func main() {
text := "學(xué)習(xí)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)
}總結(jié)
到此這篇關(guān)于GO字符串練習(xí)題的文章就介紹到這了,更多相關(guān)GO字符串練習(xí)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang 獲取文件md5校驗(yàn)的方法以及效率對(duì)比
這篇文章主要介紹了Golang 獲取文件md5校驗(yàn)的方法以及效率對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Golang基于內(nèi)存的鍵值存儲(chǔ)緩存庫(kù)go-cache
go-cache是一個(gè)內(nèi)存中的key:value store/cache庫(kù),適用于單機(jī)應(yīng)用程序,本文主要介紹了Golang基于內(nèi)存的鍵值存儲(chǔ)緩存庫(kù)go-cache,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
Go語言JSON 序列化與反序列化的實(shí)現(xiàn)
在Go語言中,通過encoding/json標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)結(jié)構(gòu)體與JSON之間的相互轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-06-06
golang封裝一個(gè)執(zhí)行命令行的函數(shù)(return?stderr/stdout/exitcode)示例代碼
在?Go?語言中,您可以使用?os/exec?包來執(zhí)行外部命令,不通過調(diào)用?shell,并且能夠獲得進(jìn)程的退出碼、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出,下面給大家分享golang封裝一個(gè)執(zhí)行命令行的函數(shù)(return?stderr/stdout/exitcode)的方法,感興趣的朋友跟隨小編一起看看吧2024-06-06

