Olá pessoal, estou com dificuldades para usar o nextline(). Se alguém puder me ajudar ficarei muito grato. Iniciei em java faz poucos dias.
Bom, meu problema é o seguinte:
Eu estou fazendo um programa para converter binários, decimais, octais e hexadecimais. Meu programa está dividido até o momento em duas classes, sendo a Main e uma chamada Binario que seria a classe que realizará as conversões de binário para os outros tipos.
na minha Main eu tenho 1 menu com um while, ex:
while(true) {
1 - binario
2 - octal
3 - decimal
4 - hexadecimal
5 - sair
} //fim do while
eu pego a opcao digitada com um objeto Scanner que chamo de input e passo o valor para uma variavel chamada opcao = input.nextInt() que chama a classe referente a opcao digitada com switch (no caso é a classe Binario). Até aqui tudo beleza, o problema vem quando escolho a opcao 1 (no caso pq é ainda a única que criei), então o programa mostra uma mensagem com um sub-menu dentro de outro while:
while(loop == true)
De binário para…
1 - …Octal
2 - …Decimal
3 - …Hexadecimal
4 - voltar
digite a opcao de conversão desejada:
aqui há outro switch que direciona para a opçao desejada e exibe a mensagem:
Digite o valor binário:
onde pego este valor binário com: valor = input.nextint(); e chamo o metodo de conversçao de binário que criei.
**o problema: eu quero pegar esse valor em formato String com valor = input.nextLine();, mas quando eu faço isso o programa pula essa parte onde insiro o binário para converter e diz que o decimal é 0. Se eu por valor = input.nextInt(); ele funciona perfeitamente.
} //fim do while
Porque eu preciso usar valor = input.nextLine(); no lugar de valor = input.nextint()?
É simples, porque eu irei converter números hexadecimais e eles tem letras no meio.
Lembro que semana passada fui tentar um pequeno e simples teste para obter alguns dados com nextLine() e tive o mesmo problema até desistir, mas não pretendo desistir dessa vez, se alguém me ajudar.
Se precisar eu coloco o código do programa aqui.
Abraço.