Item
??将给定字符串转换成驼峰式字符串(不改变第一个单词的首字母)
题目来源:Codewars(6kyu)
题目原文: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).
Example
例1: 原字符串:the-stealth-warrior; 应返回结果:theStealthWarrior。
例2: 原字符串:The_Stealth_Warrior; 应返回结果:TheStealthWarrior。
Knowledge
- 数据类型:字符串、列表
- 运算符:赋值运算符
- 容器:列表
- 其他:For循环体、格式化函数、str.join()方法、str.capitalize()方法、re.split()方法、正则表达式
Parsing
- 根据示例,大概思路:分割为列表、遍历、首字母大写、合并字符串;
- 有两种分隔符(_与-),那么分割字符串使用re模块中的split方法,正则表达式"[-_]";
- 遍历,for循环,但非全遍历,注意,第一个单词不变,那么第一个单词可以作为初始化变量值,遍历范围[1,分割后的列表长度];
- 首字母大写,遍历过程中必要的,字符串首字母大写使用capitalize方法;
- 合并初始字符串与后来转换了的单词,则使用加法赋值运算符,其中列表转字符串使用str.join()方法。
Code
import re
def to_camel_case(text):
stringItem = re.split("[-_]",text)
answer = stringItem[0]
answer += ''.join([str.capitalize() for str in stringItem[1:len(stringItem)]])
return answer
|