alfinete
Power Member
Código:
private int ContaOcorrenciasStringminha(string original, string parcial)
{
int tamanhooriginal = original.Length;//tamanho da string original
int tamanhoparcial = parcial.Length; // tamanho da string parcial
string [] palavra = new string [tamanhoparcial] ; // array que guarda a string parcial
string [] textooriginal = new string[tamanhooriginal]; // array que guarda a string original
int conta_ocorrencias = 0;// guarda o num de ocorrencias
int txto = 0; // indice da txtoriginal
int txtp = 0; // indice da txtparcial
int indice = 0; // gguarda o valor de txtp para inicializar o for da string parcial
// poe em cada posição do array o char de cada posição da string parcial
for (int j = 0; j < tamanhoparcial; j++)
{
palavra[j] = parcial.Substring(j,1);
}
// poe em cada posição do array o char de cada posição da string original
for (int k = 0; k < tamanhooriginal ; k++)
{
textooriginal [k] = original.Substring(k, 1);
}
// percorre a string original
for ( txto = 0; txto < tamanhooriginal ; txto++)
{
// percorre a string a procurar (parcial)
for (txtp = indice; txtp < tamanhoparcial; txtp++)
{
// caso valor da posicão da original = a valor da string parcial
if (textooriginal[txto] == palavra[txtp])
{
indice = indice + 1;// incremeta indice
break;// sai do for
}
}
// caso indice seja igual ao tamanho da string parcial incrementa o num de ocoorrencias
// e poe a nuloo indice
if (indice == tamanhoparcial)
{
indice = 0; // poe indice a 0
conta_ocorrencias = conta_ocorrencias + 1;// incrementa ocorrencia
}
}
Nocoorencias = conta_ocorrencias;
return Nocoorencias ;
}
tenho este metodo feito por mim de raiz , pois é assim que o quero fazer ....
para calcular as ocorrencias de uma string noutra ...
ex
string principal " o alf chama-se alf e é amigo do alf "
string a procurar(parcial) "alf"
sobre este algoritmo as ocorrencias de "alf" na string principal são 3 até ai tedo bem...
mas se a string principal for
string principal = " o alf chama-se alf e é amigo do alf2"
a procurar pelo mesmo "alf" tb dá 3 mas só devia dar 2 --- e ele papa alf como alf2
gostava que me ajudassem a resolver este prob