# 実現したいこと
ユーザーによる文字列入力に対して、ボタンを押すことで、カタカナひらがな数字一部記号を和文モールス符号に変換するというiOSアプリを開発しようとしています。
Swiftでの文字の判定
実際にAndroid版アプリはKotlinで開発していて、ロジックもある程度固まっているのですが、kotlinとswiftの言語仕様の違いに不慣れなのとSwiftを本格的に触り始めたのが最近のため、ちょっとくだらない質問になってしまうかもしれません。
ユーザーの入力文字列を取得して、それを一文字ずつ判定して処理するにあたり、Swiftだと下記の方法でしか今の所実現したい挙動が得られません。
func convertToMorseCode(text : String) -> String { var morsedText : String = "" for char in Array(text) { if char == "あ" || char == "ア" || char == "ァ" || char == "ぁ" { morsedText += "ーー・ーー " } if char == "い" || char == "イ" || char == "ィ" || char == "ぃ" { morsedText += "・ー " } // 以下同様。 } return morsedText }
Kotlinであれば||演算子を使わずに書けたものを上記のように書く以外に、もっとスマートな方法はないでしょうか?
Kotlinでは下記のように書いていました
convertText = convertText.replace("[あアぁァ]".toRegex(), "ーー・ーー ") convertText = convertText.replace("[いイぃィ]".toRegex(), "・ー ") //以下同様
このコードを書いていてあまりに芸がなさすぎるな、と思ってしまい質問を挙げさせていただきました。SwiftだけでなくKotlinのコードもちょっとおかしい気がするので、もし「こう書いた方がいいのでは」というアドバイス等あったら教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/06 12:50