Exemplo n.º 1
0
        public void ExampleSentence7()
        {
            Assert.True(KanaUtils.IsHiragana('あ'));
            Assert.False(KanaUtils.IsHiragana('ア'));

            Assert.True(KanaUtils.IsKatakana('ア'));
            Assert.True(KanaUtils.IsWideKatakana('カ'));
            Assert.True(KanaUtils.IsNarrowKatakana('サ'));
            Assert.False(KanaUtils.IsKatakana('あ'));
            Assert.False(KanaUtils.IsWideKatakana('カ'));
            Assert.False(KanaUtils.IsNarrowKatakana('サ'));

            Assert.True(KanaUtils.IsJisSymbol('ゟ'));
            Assert.True(KanaUtils.IsWideJisSymbol('・'));
            Assert.True(KanaUtils.IsNarrowJisSymbol('・'));
            Assert.False(KanaUtils.IsJisSymbol('@'));
            Assert.False(KanaUtils.IsWideJisSymbol('・'));
            Assert.False(KanaUtils.IsNarrowJisSymbol('・'));

            Assert.True(KanaUtils.IsCanShiftToHiragana('ワ'));
            Assert.False(KanaUtils.IsCanShiftToHiragana('ヷ'));

            Assert.AreEqual('あ', KanaUtils.ConvertToHiragana('ア'));
            Assert.AreEqual('ア', KanaUtils.ConvertToKatakana('あ'));
            Assert.AreEqual('ア', KanaUtils.ConvertToHiragana('ア'));
            Assert.AreEqual('漢', KanaUtils.ConvertToKatakana('漢'));
        }
Exemplo n.º 2
0
        public Sentence(SentenceDefinition sd)
        {
            KanjiKana = sd.KanjiKana;
            Kana      = sd.Kana;
            var charArray = Kana.ToCharArray();
            var charList  = new List <char>(charArray);
            var strList   = charList.Select(c => c.ToString()).ToList();

            var isSokuon = false;
            var from     = 0;

            for (int i = 0; i < strList.Count(); i++)
            {
                if (i < strList.Count() - 1) //最終文字ならチャンク確定
                {
                    if (!isSokuon)
                    {
                        isSokuon = KanaUtils.IsSokuon(strList[i]);
                        if (isSokuon)
                        {
                            from--;
                            continue;
                        }
                    }

                    var chkStr = strList[i] + strList[i + 1];
                    if (KanaUtils.Henkan.ContainsKey(chkStr))
                    {
                        from--;
                        continue;
                    }
                }

                var chunkStr = "";
                for (int j = from; j < 1; j++)
                {
                    chunkStr = chunkStr + strList[i + j];
                }
                ;

                ChunkList.Add(new Chunk(chunkStr, isSokuon));
                isSokuon = false;
                from     = 0;
            }
        }