文字列を操作する関数を使用して、Lua でライブラリを作成しようとしています。単語の奇数文字のみを大文字に変更する機能を実行したいと考えています。
これは例です:
Input: This LIBRARY should work with any string!
Result: ThIs LiBrArY ShOuLd WoRk WiTh AnY StRiNg!
「gsub」機能を試してみましたが、本当に使いにくいことがわかりました。
文字列を操作する関数を使用して、Lua でライブラリを作成しようとしています。単語の奇数文字のみを大文字に変更する機能を実行したいと考えています。
これは例です:
Input: This LIBRARY should work with any string!
Result: ThIs LiBrArY ShOuLd WoRk WiTh AnY StRiNg!
「gsub」機能を試してみましたが、本当に使いにくいことがわかりました。
最近は主に 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 ループはうまくいくはずです。