问题

请写一个字符串转成驼峰的方法?

例如:border-bottom-color -> borderBottomColor

解决

python解决方法:

def convert(one_string,space_character):    #one_string:输入的字符串;space_character:字符串的间隔符,以其做为分隔标志

    string_list = str(one_string).split(space_character)    #将字符串转化为list
    first = string_list[0].lower()
    others = string_list[1:] 

    others_capital = [word.capitalize() for word in others]      #str.capitalize():将字符串的首字母转化为大写

    others_capital[0:0] = [first]

    hump_string = ''.join(others_capital)     #将list组合成为字符串,中间无连接符。

    return hump_string

if __name__=='__main__':
    print "the string is:ab-cd-ef"
    print "convert to hump:"
    print convert("ab-cd-ef","-")

欢迎补充其它语言的解决方法

racket解决方法 (racket 5.2.1)

#lang racket

; 定义字符串转换函数 train-to-camel
(define (train-to-camel train-str separator-char)
  (let
    [(splited-str (regexp-split separator-char train-str))]      ; 把原始字符串用 '-' 分成多个单独的单词
    (string-append
      (first splited-str)
      (apply
        string-append
        (map
          string-titlecase
          (rest splited-str))))))

; 调用字符串转换函数 train-to-camel
(train-to-camel "this-is-a-var" "-")  ; 正常运行的情况下, 应输出 "thisIsAVar"

Ruby 解决方法

str.split('-').map{|x| x.capitalize}.join
str = 'border-bottom-color'
str.split('-').map{|x| x.capitalize}.join
# => "BorderBottomColor"

联系我:老齐 qiwsir#gmail.com (# to @)