5

文字列を操作する関数を使用して、Lua でライブラリを作成しようとしています。単語の奇数文字のみを大文字に変更する機能を実行したいと考えています。

これは例です:

Input: This LIBRARY should work with any string!
Result: ThIs LiBrArY ShOuLd WoRk WiTh AnY StRiNg!

「gsub」機能を試してみましたが、本当に使いにくいことがわかりました。

4

3 に答える 3

1

最近は主に Haskell でコーディングしているので、機能的なソリューションが頭に浮かびます。

local function head(str) return str[1] end
local function tail(str) return substr(str, 2) end

local function helper(str, c)
    if #str == 0 then
        return ""
    end

    if c % 2 == 1 then
        return toupper(head(str)) .. helper(tail(str),c+1)
    else
        return head(str) .. helper(tail(str), c+1)
    end
end

function foo(str) 
   return helper(str, 1)
end

免責事項:テストされていません。アイデアを示しているだけです。


そして実際には、参照セマンティクスを使用したランダムアクセスを使用して、文字列を文字のリストのように扱うことができます[]。インデックスを使用したシンプルな for ループはうまくいくはずです。

于 2013-08-07T12:35:47.747 に答える