在golang程式設計中,替換字串中的字元是常見的操作。無論是替換單個字符還是多個字符,都可以透過使用內建的字串函數和方法來實現。在本文中,我們將由php小編新一為您介紹如何在golang中進行字串字元的替換操作。無論您是初學者還是有經驗的開發者,本文都將為您提供簡潔明了的指導,幫助您輕鬆掌握這項技巧。
問題內容
我正在嘗試替換字串陣列中的特定位置字元。我的程式碼如下所示:
package main import ( "fmt" ) func main() { str := []string{"test","testing"} str[0][2] = 'y' fmt.Println(str) }
現在,執行此指令會出現錯誤:
cannot assign to str[0][2]
知道如何做到這一點嗎?我嘗試過使用 strings.Replace,但據我所知,它將替換所有出現的給定字符,而我想替換該特定字符。任何幫助表示讚賞。 TIA。
解決方法
Go 中的字串是不可變的,你無法更改它們的內容。若要變更字串變數的值,您必須指派新的字串值。
一個簡單的方法是先將 string
轉換為位元組或符文切片,進行更改並轉換回來:
s := []byte(str[0]) s[2] = 'y' str[0] = string(s) fmt.Println(str)
這將輸出(在 Go Playground 上嘗試):
[teyt testing]
注意:我將字串轉換為 byte
切片,因為這就是您索引字串時發生的情況:它索引其位元組。 string
儲存文字的 UTF-8 位元組序列,它不一定會將位元組與字元一對一映射。
如果需要替換第二個字符,請使用 []rune
取代:
s := []rune(str[0]) s[2] = 'y' str[0] = string(s) fmt.Println(str)
在這個例子中,這並不重要,但一般來說可能會。
另請注意,strings.Replace()
並不會(必然)取代所有出現的情況:
func Replace(s, old, new string, n int) string
參數 n
告訴最多要執行多少次替換。因此,以下方法也有效(在 Go Playground 上嘗試):
str[0] = strings.Replace(str[0], "s", "y", 1)
另一種解決方案可能是將字串切片直到可替換字符,並從可替換字符之後的字符開始,然後將它們連接起來(在 去遊樂場):
str[0] = str[0][:2] + "y" + str[0][3:]
這裡也必須小心:切片索引是位元組索引,而不是字元(符文)索引。
查看相關問題:不可變字串和指標位址 p>#
以上是替換golang中字串中的字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Java 中对字符串排序的方法:使用 Arrays.sort() 方法对字符串数组按升序排序。使用 Collections.sort() 方法对字符串列表按升序排序。使用 Comparator 接口对字符串进行自定义排序。

C 语言中,\0 是字符串的结束标志,称为空字符或终止符。由于字符串在内存中以字节数组形式存储,编译器通过 \0 识别字符串结束,确保正确处理字符串。\0 工作原理:编译器遇到 \0 时停止读取字符,之后的字符被忽略。\0 自身不占存储空间。好处包括可靠的字符串处理、提高效率(无需扫描整个数组查找结束)以及方便比较和操作。

args 在 Java 中表示命令行参数,是一个字符串数组,包含程序启动时传递给它的参数列表。它仅在 main 方法中可用,其默认值为一个空数组,通过索引可以访问每个参数。args 用于接收和处理命令行参数,从而在程序启动时进行配置或提供输入数据。

如何在C语言编程软件中实现中文字符排序功能?在现代社会,中文字符排序功能在很多软件中都是必不可少的功能之一。无论是在文字处理软件、搜索引擎还是数据库系统中,都需要对中文字符进行排序,以便更好地展示和处理中文文本数据。而在C语言编程中,如何实现中文字符排序功能呢?下面将简要介绍一种方法。首先,为了在C语言中实现中文字符排序功能,我们需要使用到字符串比较函数。然

函数对C++程序性能的影响包括函数调用开销、局部变量和对象分配开销:函数调用开销:包括堆栈帧分配、参数传递和控制权转移,对小函数影响显著。局部变量和对象分配开销:大量局部变量或对象创建和销毁会导致堆栈溢出和性能下降。

C语言程序的运行起点是什么?C语言作为一种高级编程语言,是一种十分常用的编程语言之一。在学习C语言的过程中,很多人都会对C程序的运行起点感到困惑。那么,C语言程序的运行起点到底是什么呢?答案是main函数。在C语言程序中,程序的执行都是从main函数的开始处开始的。main函数是C语言程序的入口点,也是程序员定义的第一个被执行的函数。它的主要作用是用来定义程

PHP数组去重算法的复杂度:array_unique():O(n)array_flip()+array_keys():O(n)foreach循环:O(n^2)

我从外部服务器接收此json:[["010117"、"070117"、"080117"]、["080117"、"140117"、"150117"]、["150117"、"210117"、"220117"]]我需要解析它packagemainimport("encoding/json""fmt""io""os""runtime")typeRangestruct{FromstringTostring


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。