Beispiel #1
0
        private static List <WordPart> partition(string word)
        {
            List <WordPart> ret = new List <WordPart>();

            for (var i = 0; i < word.Length;)
            {
                StringBuilder builder = new StringBuilder();
                if (isKanji(word[i]))
                {
                    for (; i < word.Length && isKanji(word[i]); i++)
                    {
                        builder.Append(word[i]);
                    }
                    ret.Add(WordPart.Kanji(builder.ToString()));
                }
                else if (isKana(word[i]))
                {
                    for (; i < word.Length && isKana(word[i]); i++)
                    {
                        builder.Append(word[i]);
                    }
                    ret.Add(WordPart.Kana(builder.ToString()));
                }
                else
                {
                    //skip silently (may not be the best course of action
                    i++;
                }
            }
            return(ret);
        }