package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Replace("golang", "g", "1", -1))
}
如何通過*
更換所有字符字符串"golang"
(上面的字符串),這是它應該像"******"
?如何更換所有字符串中的字符在golang
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Replace("golang", "g", "1", -1))
}
如何通過*
更換所有字符字符串"golang"
(上面的字符串),這是它應該像"******"
?如何更換所有字符串中的字符在golang
做它沒有像一個正則表達式的一個簡單方法:
https://play.golang.org/p/B3c9Ket9fp
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Repeat("*", len("golang")))
}
更多的東西沿着你很可能首先想的臺詞:
https://play.golang.org/p/nbNNFJApPp
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(".")
fmt.Println(re.ReplaceAllString("golang", "*"))
}
@photoiaonized ,,,,,謝謝 – vijay
似乎icza的答案應該被設置爲接受,因爲它考慮到字符串可能有多字節符號 –
通過替換所有的字符你會得到一個string
具有相同的字符數,但都是'*'
。因此,簡單地構建一個string
具有相同的字符長度,但都是'*'
。 strings.Repeat()
可以(通過連接它)重複string
:
ss := []string{"golang", "pi", "世界"}
for _, s := range ss {
fmt.Println(s, strings.Repeat("*", utf8.RuneCountInString(s)))
}
輸出(嘗試在Go Playground):
golang ******
pi **
世界 **
注意len(s)
爲您提供了UTF-8編碼形式的長度。這樣Go是如何將字符串存儲在內存中的。您可以使用utf8.RuneCountInString()
獲取字符數。
例如下面的行:
fmt.Println(len("世界"), utf8.RuneCountInString("世界")) // Prints 6 2
打印6 2
爲字符串"世界"
需要6個字節來編碼(以UTF-8),但它僅具有2個字符。
良好的多字節字符調用。 – photoionized
你能否給我們更多的例子,說明你會如何表現? – icio
例如:如果我得到像「INHERITED」這樣的字符串,我想將它轉換爲「*********」 – vijay
您的意思是'strings.Replace(「golang」,「golang」,「** ****「,-1)'? – Nadh