Usuário com melhor resposta
Função OCCURS

Pergunta
-
pessoal mts vezes desculpe pelas perguntas mas estou começando a programação em C# e vindo do universo VFP.
No VFP nós temos uma função chamada OCCURS em qual passamos 2 parametros e ela retorna rapidamente a qtd d caracteres da string, exemplo:
lcExpressao = "AAAAA"
?occurs("A",lcExpressao)retorno: 5
Existe alguma função própria no C# q consiga fazer isto em uma única linha ou precisaria criar a minha própria?
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
Respostas
-
Ele retorna um array de substrings que foi gerada pelo caractere que foi passado.
Por exemplo, se eu utilizasse String.Split("/"c), ele iria me retornar um array de valores que estavam entre essas barras. Então se eu tivesse uma string como: Pudim/Bolo/Musse, o array ficaria dessa forma:
1 Elemento: Pudim
2 Elemento: Bolo
3 Elemento: Musse
No exemplo que eu te passei ele vai gerar substring delimitadas pelo caractere "A", porem com a função Length eu consigo pegar quantas vezes houve essa ocorrencia e passar esse valor para a variável.
Espero ter consigo ser claro :)
Vou deixar o link sobre o método aqui:
http://msdn.microsoft.com/en-us/library/b873y76a(v=vs.110).aspx
Até mais :)
- Editado Thiago Patrocinio segunda-feira, 25 de novembro de 2013 00:40
- Marcado como Resposta Frederico Oliva segunda-feira, 25 de novembro de 2013 00:53
-
Pessoal, resolvi criando uma função própria. Fiz da forma correta?
Codifiquei da forma abaixo:
Função:
public static int Ocorrencias(string procura, string expressao)
{
return (expressao.Length - expressao.Replace(procura, "").Length);Chamada:
int oc = Funcoes.Ocorrencias(".", chave);
Mais uma vez obrigado e desculpe as perguntas, mas realmente faz menos d 1 semana q comecei programar em C#. Antes era só VFP e mais nd.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
- Sugerido como Resposta Jean Carlos Galhardi domingo, 24 de novembro de 2013 22:26
- Marcado como Resposta Frederico Oliva domingo, 24 de novembro de 2013 22:46
Todas as Respostas
-
Pessoal, resolvi criando uma função própria. Fiz da forma correta?
Codifiquei da forma abaixo:
Função:
public static int Ocorrencias(string procura, string expressao)
{
return (expressao.Length - expressao.Replace(procura, "").Length);Chamada:
int oc = Funcoes.Ocorrencias(".", chave);
Mais uma vez obrigado e desculpe as perguntas, mas realmente faz menos d 1 semana q comecei programar em C#. Antes era só VFP e mais nd.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
- Sugerido como Resposta Jean Carlos Galhardi domingo, 24 de novembro de 2013 22:26
- Marcado como Resposta Frederico Oliva domingo, 24 de novembro de 2013 22:46
-
-
O q o SPLIT faz?
Sobre o VFP, o q precisar, só pedir. Trabalho com ele a mais de 15 anos. Sei tudo q possa imaginar sobre e nunca me deixou na mão, mas o tempo passa e ñ podemos ficar p/ trás.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
-
Ele retorna um array de substrings que foi gerada pelo caractere que foi passado.
Por exemplo, se eu utilizasse String.Split("/"c), ele iria me retornar um array de valores que estavam entre essas barras. Então se eu tivesse uma string como: Pudim/Bolo/Musse, o array ficaria dessa forma:
1 Elemento: Pudim
2 Elemento: Bolo
3 Elemento: Musse
No exemplo que eu te passei ele vai gerar substring delimitadas pelo caractere "A", porem com a função Length eu consigo pegar quantas vezes houve essa ocorrencia e passar esse valor para a variável.
Espero ter consigo ser claro :)
Vou deixar o link sobre o método aqui:
http://msdn.microsoft.com/en-us/library/b873y76a(v=vs.110).aspx
Até mais :)
- Editado Thiago Patrocinio segunda-feira, 25 de novembro de 2013 00:40
- Marcado como Resposta Frederico Oliva segunda-feira, 25 de novembro de 2013 00:53
-
Só para responder a função split te retorna um array sem o parametro por ex :
string lcExpressao = "ABCADAEFGAHIJA"; var itens = lcExpressao.Split('A'); // o retorno será um array com 6 posicoesassim itens[0] = ""; itens[1] = "BC"; itens[2] = "D"; itens[3] = "EFG";//e assim sucessivamente
Veja mais aqui