Jump to content

Ajuda em como distinguir Numeros de Letras em C#?


Recommended Posts

Posted

OLá a todos,

Estou no inicio da aprendizagem do C#.  😄

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,

Posted

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. 😛

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

Posted

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

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Posted

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

Posted

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

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,

Posted

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 ?

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.