[quote=Marcaobu]creio eu que deva existir uma forma mais fácil de fazer, sem tratramento de execção usando o Parse
alguem pode ajudar???[/quote]
Cara, sou novato, mas acredito que vc vai ter que tratar a exceção… Pois, como o programa vai lidar se for passado uma string que não contenha apenas numeros?
tente rodar este exemplo e veja o erro:
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String str = "25";
int i = Integer.valueOf(str).intValue();
System.out.println(i);
str = "25sorvetes";
i = Integer.valueOf(str).intValue();
System.out.println(i);
}
}
venomtotal essa foi muito boa mesmo, simplezmente ele vai ter java.lang.NumberFormatException, e gastar 1 hora procurando da onde veio esse erro para localizar os sorvetes
galera, eu preciso de apenas de um conversão de dados dentro da minha condição lógica, dentro do if… sem tratamento de exeções, sem nada…
pois eu sei q o usuário vai digitar os dados corretos, por isso é sem tratamento de exceções…
verifiquem o código
public Fila op4()
{
Link tmp = first;
Fila fi = new Fila();
while(tmp!=null)
{
if(tmp.getCodigo()>5000)
fi.inserir(tmp.getCodigo(), tmp.getDescri(), tmp.getPre());
tmp=tmp.getNext();
}
return fi;
}
dentro do if, eu preciso converter o meu getCodigo de String para Int para comparar com o valor 5000
só isso…
galera fiz aki e deu certo a conversão de String para Int
blzinha
agora eu to precisando fazer uma segunda classificação na minha lista
quando rodo o algoritmo ele já puxa os dados de um arquivo .txt calssificando todos os produções pelo Preço
me veio na cabeça de colocar em um relátório q estou desenvolendo para o cliente especificar com sim ou não se quer q o relatório venha classificado em ordem crescente ou não, mas pelo código
mas não estou onseguindo desenvolver a condição, alguem pode me dar uma ajuda???
aqui está o algoritmo
case 4 : {
int opc;
System.out.print("Deseja colocar os códigos em ordem crescente?");
System.out.print("10 - SIM");
System.out.print("20 - NÃO");
Scanner y = new Scanner(System.in);
opc=y.nextInt();
if(opc==10)
{
Fila fila = lista.op4();
System.out.print("\n TODOS OS PRODUTOS COM O CÓDIGO MAIOR QUE 5000 \n");
System.out.println("CÓDIGO \t\t\t DESCRIÇÃO \t\t PREÇO");
while(!fila.empty())
fila.remove().displayLink();
}
else
{
Fila fila = lista.op4();
System.out.print("\n TODOS OS PRODUTOS COM O CÓDIGO MAIOR QUE 5000 \n");
System.out.println("CÓDIGO \t\t\t DESCRIÇÃO \t\t PREÇO");
while(!fila.empty())
fila.remove().displayLink();
}
break;
}
este é o onde gera o relatório.
public Fila op4()
{
Link tmp = first;
Fila fi = new Fila();
while(tmp!=null)
{
String myString = tmp.getCodigo();
int myInt = Integer.parseInt(myString);
if(myInt>5000)
fi.inserir(tmp.getCodigo(), tmp.getDescri(), tmp.getPre());
tmp=tmp.getNext();
}
return fi;
}
Isso é extremamente perigoso de se assumir. Nem sempre o usuário vai digitar os dados corretamente.
Ele não precisa nem estar mal intencionado. Um descuido pode fazer ele digitar uma letra errada, por exemplo, bater a tecla + quando queria digitar 9.