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; }
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); }