替換golang中字串中的字符
在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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

是的,H5頁面製作是前端開發的重要實現方式,涉及HTML、CSS和JavaScript等核心技術。開發者通過巧妙結合這些技術,例如使用<canvas>標籤繪製圖形或使用JavaScript控制交互行為,構建出動態且功能強大的H5頁面。

如何使用JavaScript或CSS控制瀏覽器打印設置中的頁首和頁尾在瀏覽器的打印設置中,有一個選項可以控制是否顯�...

關於inline-block元素錯位顯示的原因及解決方案在編寫網頁佈局時,我們常常會遇到一些看似奇怪的顯示問題。比...

如何實現分段器的45度曲線效果?在實現分段器的過程中,如何讓點擊左側按鈕時右側邊框變成45度曲線,而點�...

CSS自定義resize符號的方法與背景色統一在日常開發中,我們經常會遇到需要自定義用戶界面細節的情況,比如調...

實時比特幣美元價格 影響比特幣價格的因素 預測比特幣未來價格的指標 以下是 2018-2024 年比特幣價格的一些關鍵信息:
