Tentei fazer de um modo mais pratico…usando (cast) para conversões e algumas formulas simples, Mas dava erros em algumas dezenas… O exercio só pedia o Primeiro digito, mas implementei…para descobrir o Segundo…
Exercicio - Entrar com um número e informar se o dígito da dezena é par ou ímpar…
public static void main(String args[])
{
int i;
double pN;
Scanner sc = new Scanner(System.in);
System.out.print("\nDigite a Dezena: ");
String dez;
dez = sc.next();
i = Integer.parseInt(dez);
pN = (i / 10);
if(((int)pN % 2) == 0)
System.out.println("\nO Primeiro digito da Dezena e Par");
else
System.out.println("\nO Primeiro digito da Dezena e Impar");
char c = dez.charAt(1);
String sN = Character.toString(c);
i = Integer.parseInt(sN);
if((i % 2) == 0)
System.out.println("\nO Segundo digito da Dezena e Par");
else
System.out.println("\nO Segundo digito da Dezena e Impar");
}
Consegui fazer desse modo…deu tudo certo… Avaliem …valeu…
[quote=wellington.nogueira]Uma forma de “abreviar” seria trabalhar diretamente com os caracteres da string.
Veja o tamanho da string, se for 1, já sabe que a dezena é zero e precisa verificar apenas charAt(0). Se for 2, pegue o charAt(0) e o charAt(1) mas não há necessidade e conversão pois char é um número inteiro.
No caso, zero equivale a 48 e 9 equivale a 57. Então poderia fazer como este exemplo:
Outra coisa é que, como você fez a conversão da string (dez) para um inteiro (i), para saber se a unidade é par ou impar, bastaria verificar i sem extrair a unidade isoladamente.
Sem contar que se o usuário digita-se apenas a unidade, ocorreria uma exceção por tentar obter charAt(1)
Isso é verdade mesmo aconteceria exceção se fosse digitado…uma Unidade… Mas o exercicio pedia uma DEZENA…
//o código acima seria mantido igual.
/* Esta parte seria desnecessária
char c = dez.charAt(1);
String sN = Character.toString(c);
i = Integer.parseInt(sN);
*/
if((i % 2) == 0)
System.out.println("\nO Segundo digito da Dezena e Par");
else
System.out.println("\nO Segundo digito da Dezena e Impar");
Mas o que descrevo são apenas alternativas de codificação. O teu código funciona e acho que isso já é suficiente ;)[/quote]
Poderia mesmo ter achado uma alternativa mais pratica de resolver a questão do Segundo digito…Mas enfim…
OBRIGADO…pela sua opnião …e visão sobre o exercicio…
Uma forma de “abreviar” seria trabalhar diretamente com os caracteres da string.
Veja o tamanho da string, se for 1, já sabe que a dezena é zero e precisa verificar apenas charAt(0). Se for 2, pegue o charAt(0) e o charAt(1) mas não há necessidade e conversão pois char é um número inteiro.
No caso, zero equivale a 48 e 9 equivale a 57. Então poderia fazer como este exemplo:
Outra coisa é que, como você fez a conversão da string (dez) para um inteiro (i), para saber se a unidade é par ou impar, bastaria verificar i sem extrair a unidade isoladamente.
Sem contar que se o usuário digita-se apenas a unidade, ocorreria uma exceção por tentar obter charAt(1)
//o código acima seria mantido igual.
/* Esta parte seria desnecessária
char c = dez.charAt(1);
String sN = Character.toString(c);
i = Integer.parseInt(sN);
*/
if((i % 2) == 0)
System.out.println("\nO Segundo digito da Dezena e Par");
else
System.out.println("\nO Segundo digito da Dezena e Impar");
Mas o que descrevo são apenas alternativas de codificação. O teu código funciona e acho que isso já é suficiente