当前位置: 代码迷 >> 综合 >> go 语言编程——Convert string to camel case
  详细解决方案

go 语言编程——Convert string to camel case

热度:64   发布时间:2023-12-04 23:26:13.0

题目描述

Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized (known as Upper Camel Case, also often referred to as Pascal case).

样例说明

"the-stealth-warrior" gets converted to "theStealthWarrior"
"The_Stealth_Warrior" gets converted to "TheStealthWarrior"

题目分析

结合题目描述以及样例:将给出的字符串转换成标准的驼峰式命名。

输入字符:

  1. 字符串中含有"-"
  2. 字符串中含有"_"
  3. 以上两种情况都没有

返回字符:"-“或者”_"标识的字符串中,第一个不发生改变,之后每一个中间的字符的首字母均转换成大写,且标识消失。

思路:①字符串依据"-“或者”_"切割;②根据切割之后的字符修改除第一个字符之外的字符串;③返回拼接之后的字符串

代码

func ToCamelCase(s string) string{
    var strArr []stringif strings.Contains(s,"-") {
    strArr=strings.Split(s,"-")}else if strings.Contains(s,"_") {
    strArr=strings.Split(s,"_")}else {
    return s}stringSum:=strArr[0]for i:=1;i<len(strArr);i++ {
    stringSum+=strings.Title(strArr[i])}return stringSum
}

评分较高

func ToCamelCase(s string) string {
    words := regexp.MustCompile("-|_").Split(s,-1)for i,w := range words[1:] {
    words[i+1] = strings.Title(w)}return strings.Join(words,"")
}

分析:

  1. 字符判断时未使用忽略了使用正则的表达形式以及多组合使用;
  2. 字符拼接:采用strings.Join()

知识点学习

字符串切割

  1. 字符串分割字符串
    strings.Split(s,seq)
    样例:
package mainimport ("fmt""strings"
)func main(){
    s := "Hello-test-world"strArr := strings.Split(s,"-")fmt.Println(strArr) //[Hello test world]
}
  1. 字符切割字符串
    strings.FieldsFunc(s,f func(rune) bool)
  2. 空格分割字符串
    strings.Fields(s)

字符串合并
strings.Join(s,string)
字符串大小写转换
strings.ToTitle(s string):将字符串转换成大写,并返回
strings.Title(s string)
strings.ToUpper(s string)

package mainimport ("fmt""strings"
)func main(){
    s := "Hello-test-world"strArr := strings.ToUpper(s) //HELLO-TEST-WORLDstrArr := strings.Title(s) //Hello-Test-WorldstrArr := strings.ToTitle(s) //HELLO-TEST-WORLDfmt.Println(strArr) 
}

字符串包含
strings.Contains(s,seq):返回true or false
正则
regexp.MustCompile(str string)返回另一个正则指针

数组遍历

package mainimport ("fmt"
// "strings"
)func main(){
    var arr  = []string{
    "Hello","my","World"}for i:=0;i < len(arr);i++{
    fmt.Println(arr[i])}for key,value := range arr {
    fmt.Println(key,value)}
}

题目来源:https://www.codewars.com/

  相关解决方案