特徴
- 短い?
- 遅い
- 改良しやすい
- ローマ字にしか使えない
ということで,誰かもっと良いのがあったら教えてください.もしくは,改良しましたとかあったら報告ください.
コード
スコア算出用のテーブルの用意
母音をあ~おで1~5,子音をあ行から順に+5ずつ増加.これで1~50までのスコアを作る.
ローマ字による文字列をスコア化
正規表現でマッチさせます.つまり,遅い.解説も何もないので,下記コードを見てください.
CalculateScoreは1音節分のスコアの計算,ConvertNameToDigitsは1音節ずつマッチさせた結果を連結します.ConvertNameToDigitsで得た結果をリストに格納してsortに渡せば,ローマ字でソートしてくれます.ConvertNameToDigitsの結果をキーにした連想配列を作って,keysでkeyだけ取ってきてソートした順に連想配列のvalueを取るのが普通の使い方かな?
正規表現で音節を取ってくるところが気に入ってる.
使い方
- ConvertNameToDigits("sato"); みたいに使います.結果は,文字列で1120 (=(10+1)+(15+5))です.