0%

codewar-將駝峰式名稱拆開

題目:將駝峰式名稱拆開(好難翻啊…還是直接看範例吧!)

Example:

1
2
Test.assert_equals(solution('camelCasing'), 'camel Casing')
Test.assert_equals(solution('camelCasingTest'), 'camel Casing Test')

解題方向:

  1. 想到要拆字串,心中有幾個常用的方法浮現,chars會將它拆成個別字元,所以不是我要的,而split或許是個選項,接下來的問題就是如何找到大寫字母來做拆解條件?或許可以用常規標示法來做,於是就來直接餵狗(google)啦!我下的關鍵字是”split capital case ruby”,很幸運的在第一頁就找到解法@@
    https://stackoverflow.com/questions/3997516/how-to-split-a-camelcase-string-in-its-substrings-in-ruby

    1
    2
    3
    4
    5
    def solution(string)
    string.split(/(?=[A-Z])/)
    end

    =>Expected: "camel Casing", instead got: ["camel", "Casing"]
  2. 第一步完成將駝峰拆掉了,接下來是如何組回去字串,並且在中間加上空格。刷過幾次codewar之後,對陣列轉字串應該就不陌生了,join是大家的好朋友~我就用它來結束這一回合吧!

    1
    2
    3
    def solution(string)
    string.split(/(?=[A-Z])/).join(" ")
    end