none
Função OCCURS RRS feed

  • 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)

    domingo, 24 de novembro de 2013 20:18

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 :)


    segunda-feira, 25 de novembro de 2013 00:39
  • 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)

    domingo, 24 de novembro de 2013 22:04

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)

    domingo, 24 de novembro de 2013 22:04
  • Voce poderia fazer +- assim também:

    int count = test.Split('A').Length - 1;

    Só para acrescentar :)

    Legal vc ter mencionado VFP, não conhecia haha, fui pesquisar para saber o que é :D

    Até mais

    domingo, 24 de novembro de 2013 23:39
  • 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)

    segunda-feira, 25 de novembro de 2013 00:10
  • 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 :)


    segunda-feira, 25 de novembro de 2013 00:39
  • 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

    segunda-feira, 25 de novembro de 2013 00:43