String 在大写字母之间添加空格
我有这样的字符串String 在大写字母之间添加空格,string,go,String,Go,我有这样的字符串ClientLovesProcess除了第一个大写字母之外,我需要在每个大写字母之间添加一个空格,这样最终的结果就是这个客户端lovesprocess 我不认为golang有最好的字符串支持,但我正是这样考虑的: 首先循环每个字母,如下所示: name := "ClientLovesProcess" wordLength := len(name) for i := 0; i < wordLength; i++ { letter := string([]rune(
ClientLovesProcess
除了第一个大写字母之外,我需要在每个大写字母之间添加一个空格,这样最终的结果就是这个客户端lovesprocess
我不认为golang有最好的字符串支持,但我正是这样考虑的:
首先循环每个字母,如下所示:
name := "ClientLovesProcess"
wordLength := len(name)
for i := 0; i < wordLength; i++ {
letter := string([]rune(name)[i])
// then in here I would like to check
// if the letter is upper or lowercase
if letter == uppercase{
// then break the string and add a space
}
}
name:=“ClientLovesProcess”
字长:=len(名称)
对于i:=0;i
问题是我不知道如何检查go中的字母是小写还是大写。我查看了字符串手册,但它们没有相应的功能。使用go完成此任务的另一种方法是什么?您可以使用unicode软件包测试大写字母。这是我的解决方案:
您正在寻找的功能是 我将使用一个
bytes.Buffer
,这样您就不会进行大量字符串连接,这会导致额外的不必要的分配
下面是一个实现:
func addSpace(s string) string {
buf := &bytes.Buffer{}
for i, rune := range s {
if unicode.IsUpper(rune) && i > 0 {
buf.WriteRune(' ')
}
buf.WriteRune(rune)
}
return buf.String()
}
还有一个
func addSpace(s string) string {
buf := &bytes.Buffer{}
for i, rune := range s {
if unicode.IsUpper(rune) && i > 0 {
buf.WriteRune(' ')
}
buf.WriteRune(rune)
}
return buf.String()
}