name_untitledのエッセイ

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

ラオス語タイピングソフト 文字列処理でイメージと違う、、、動き。でもまぁ納得、、、いや。

かなり寝かせたラオス語タイピングソフトを久しぶりに触る。

次のステップでCSVから、日本語訳付で情報をロードするとしたいが、

とりあえず複数の単語の入力が出来るよう実装。

 

何度も入力したສະບາຍດີを正しく入力し次は、"ບໍ່ມີບັນຫາ"。

で、キーボードで、"ບ"に当たるところを入力したら文字が違うとはじかれた。

実際の処理は、キー入力を拾って、ラオス語文字に変換、

変換したものを比較しているのでこういう判定になる。

 

if (!"ບໍ່ມີບັນຫາ".StartsWith(""))

{

    //一致しない場合の処理

}

で、サクラエディタとかでこういうふうに表示されるし、

キーボードを打つ時の順番もこれ。f:id:name_untitled:20151030015022p:plain

だから、一文字目は一致しているはずだがFalseとなる

これはおそらく子音と声調を一緒に判定している、、、。

単語を声調の前とかで文字列切り出してきっちり比較すると、

期待通りの判定結果になった。

//concatInputにこれまで入力した値を設定

//これまで入力した文字数分、単語の先頭から切り出して、Equalsメソッドで比較。

if (!"ບໍ່ມີບັນຫາ".Substring(0,concatInput.Length).Equals(concatInput))
{

    //一致しない場合の処理

}