给出如下名称:
理查德应该是理查德
理查德应该是理查德
richAnne应该是RichAnne
我宁愿在excel中完成,但我的另一个选择是使用Rails。
答案 0 :(得分:0)
试试这个:
new_string = string.slice(0,1).capitalize + string.slice(1..-1)
答案 1 :(得分:0)
这适用于您的示例。
SUCCESS
答案 2 :(得分:0)
在Rails中你可以这样做:
>> 'richard'.titleize.split.join
=> "Richard"
>> 'RICHARD'.titleize.split.join
=> "Richard"
>> 'richAnne'.titleize.split.join
=> "RichAnne"
前两种情况不需要.split.join
,但这是最后一种情况。
答案 3 :(得分:0)
只是为了比较,在Excel中你可以尝试这个
=IF(SUM((CODE(MID(A1&REPT(" ",10),COLUMN(A:J),1))>=65)*(CODE(MID(A1&REPT(" ",10),COLUMN(A:J),1))<=90))=LEN(A1),PROPER(A1),UPPER(LEFT(A1))&RIGHT(A1,LEN(A1)-1))
计算名称中的大写字母数,但与Ruby解决方案相比,它看起来非常混乱。改变以适应您期望的最长名称。
这是一个数组公式,必须使用 Ctrl Shift 输入
输入您也可以通过检查名称中是否有任何小写字母来执行此操作,如果是,请将第一个字母大写。
=IF(SUM(--ISNUMBER(FIND(MID("abcdefghijklmnopqrstuvwxyz",COLUMN(A:Z),1),A1))),UPPER(LEFT(A1))&RIGHT(A1,LEN(A1)-1),PROPER(A1))
模式匹配解决方案更整洁,但需要VBA。