• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zetotec

Ajuda em como distinguir Numeros de Letras em C#?

10 mensagens neste tópico

OLá a todos,

Estou no inicio da aprendizagem do C#.  :D

Preciso de determinar, dentro de um conjunto de digitos inseridos pelo utilizador, quais são letras e quais são numeros, de forma a fazer calculos com os numeros e mostrar no ecrã as letras introduzidas, mas já separadas dos numeros.

Desde já agradeço a vossa ajuda.

Cmps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá..

Ainda não consegui... :wallbash:

A ideia é fazer um pequeno programa em modo consoloa,onde o utilizador introduza varios digitos e quando carregar no enter, mostrar no ecrã quantos numeros introduziu,quantas letras introduziu, e a soma dos numeros introduzidos.

Para isso penso que tenho que percorrer a string e verificar caracter a caracter qual o tipo. Se for numerico,conta e soma senão conta as letras.

O meu problema é saber como percorrer a string para verificar  os caracteres. :P

Desde já agradeço a vossa ajuda...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas mete-se todos os números e letras ao mesmo tempo?

Como estás a separar os números para somar?

Consideras um número cada digito? Ou estás a separar os números por espaços?

Se for por espaços podes separar em grupos usando o método Split.

Para percorres a String letra a letra podes usar o foreach

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mete-se tudo junto ex: 1476743567hjhkjdfhjsdh38423872wfsd

(conjunto=Console.Readline():) //leio o exemplo acima escrito

O conjunto vai ser a minha variavel do tipo string que vai receber o exemplo.

Agora e pegar no exemplo( variavel conjunto) e tratá-lo de forma a mostrar no ecrã quantos numeros introduziu,quantas letras introduziu, e a soma dos numeros introduzidos.

Qualquer dica é bem vinda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boax...

string pr=string.Empty;
string string_letras=string.Empty;
string string_numeros=string.Empty;
int somatorio=0;
pr=conjunto;
foreach(char s in pr)
{
        if(Char.IsDigit(s))
{					
	string_numeros+=s;
	somatorio+=Convert.ToInt32(Convert.ToString(s));
}
if(Char.IsLetter(s))
{
	string_letras+=s;
}
}
MessageBox.Show("N. de  Letras: "+Convert.ToString(string_letras.Length));
MessageBox.Show("N. de  Digitos: "+Convert.ToString(string_numeros.Length));
MessageBox.Show("Somatorio: "+Convert.ToString(somatorio));

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá.

Obrigado pelo codigo, fiz ligeiramente diferente, mas o resultado é o pretendido. Fica aqui o que fiz:

Console.Write("Introduza conjunto de digitos: ");
                s = Console.ReadLine();
            foreach (char c in s)
            {
                
                if (((int)c > 46) && ((int)c < 58))
                {
                    cont1 = cont1 + 1;
                    
                    num=Convert.ToInt32(Convert.ToString(c));
                    soma = soma + num;
                }
                else
                {
                    cont2 = cont2 + 1;
                }
            }
            Console.WriteLine("total numeros: {0}", cont1);
            Console.WriteLine("total letras: {0}", cont2);
            Console.WriteLine("soma: {0}", soma);

mais uma vez, muito obrigado

cmps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boax...

Preciso de determinar, dentro de um conjunto de digitos inseridos pelo utilizador, quais são letras e quais são numeros

Posso tar enganado... mas $ ou % ou [ para mim nao sao letras....

Outra coisa... se introduzires a cadeia 12h4/qw , o que esperas obter ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como de certexa repararaste eu estou a comparar através da tabela ASCII " if (((int)c > 46) && ((int)c < 58))",

seguindo esta lógica vou validar para também distinguir maiusculas de minusculas, e outros caraecters que não numeros ou letras. O que coloquei foi apenas uma parte do codigo.

A tua observação faz todo o sentido e realmente da foma como fizeste também funciona.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora