コード例 #1
0
        private void BuildMetaphoneKeys()
        {
            Chave chave = new Chave(this._Nome);

            //retirar letras repetidas
            chave.RemoverRepeticoes();
            this._Nome = chave.Origem;

            //Aplicando regra das consoantes e extrair a chave
            Consoantes consoante = new Consoantes(this._Nome);

            chave = consoante.RegraConsoante(this._Nome);

            //alterar "E" por "I"
            chave.Excecao();

            //retirar letras repetidas
            chave.RemoverRepeticoes();

            //inserir todos encontros vocalicos na chave
            Encontro encontro = new Encontro();

            chave = encontro.InsertEncontroVocalico(chave);

            //case quantidades de letras

            Vogais vogal = new Vogais();

            chave = vogal.RegraVogais(chave);

            this._Chave = chave.Key;
            this._Nome  = chave.Origem;
        }
コード例 #2
0
        public Chave RegraVogais(Chave chave)
        {
            Encontro encontro     = new Encontro();
            int      qtdEncontros = encontro.ProximoEncontroVocalico(chave.Origem).Count();
            int      current      = chave.Origem.Length;

            //if(chave.Origem[0].Equals("H")) current--;

            switch (current)
            {
            case 1:
                chave = PrimeiraVogal(chave);
                break;

            case 2:
                chave = PrimeiraVogal(chave);
                break;

            case 3:
                chave = PrimeiraVogal(chave);
                break;

            case 4:
                if (qtdEncontros == 0)
                {
                    chave = PrimeiraVogal(chave);
                }
                break;

            case 5:
                if (qtdEncontros == 0)
                {
                    if (!encontro.EncontroVocalicoConsonantal(chave.Origem))
                    {
                        chave = PrimeiraVogal(chave);
                    }
                    else
                    {
                        chave = UltimaVogal(chave);
                    }
                }
                break;

            case 6:
                if (qtdEncontros == 0)
                {
                    if (!Vogais.IsVowel(chave.Origem.Length - 1, chave.Origem))
                    {
                        chave = PrimeiraVogal(chave);
                    }
                    else
                    {
                        chave = UltimaVogal(chave);
                    }
                }
                break;

            case 7:
                chave = UltimaVogal(chave);
                break;

            default:
                chave = UltimaVogal(chave);
                break;
            }


            return(chave);
        }