Converter de string para int (Urgente)

boa noite galera, como eu faço para convertre de String para Int neste pedaço de código

if(tmp.getCodigo()>5000)

é uma comparação onde meu tmp está armazenado minha lista, e estou pegando o código, mas está como String e tenho de comparar com este int…

alguem pode me ajudar a fazer o código???

obrigado

String myString = "123";
try {
   int myInt = Integer.parseInt(myString);
} catch (NumberFormatException e) {
   // trate a exceção
}

creio eu que deva existir uma forma mais fácil de fazer, sem tratramento de execção usando o Parse

alguem pode ajudar???

Marcaobu!!!

então use somente a parte de String myString = "123"; int myInt = Integer.parseInt(myString);

mas um bom trabalho sempre deve ser controlado cara!!!

mandou bem AvilaCS

um abraço galera

[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 :smiley: 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

um abraço

venom, pq vc usa o valueOf e depois o intValue? Não era melhor usar diretamente o parseInt?

Não vejo porque gerar um objeto do tipo Integer primeiro.

[quote=ViniGodoy]venom, pq vc usa o valueOf e depois o intValue? Não era melhor usar diretamente o parseInt?

Não vejo porque gerar um objeto do tipo Integer primeiro.[/quote]

int myInt = Integer.parseInt(str);  
int myint = Integer.valueOf(str).intValue();  

Realmente concordo. Comparando as duas maneiras, a segunda é desnecessária mesmo. hehehe :wink:

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…

obrigado.

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; }

obrigado por enquanto

Done! Resolvido!

public Fila op4(){
	
	Link tmp = first;  
	Fila fi = new Fila();  

	while(tmp!=null){

		if(Integer.parseInt(tmp.getCodigo()) > 5000){  
			fi.inserir(tmp.getCodigo(), tmp.getDescri(), tmp.getPre());  
		}
		
		tmp=tmp.getNext();  
	}  
	return fi;  
}

Qqr coisa, posta ai!

:wink:

ok galera, já resovi tudo, obrigado pela ajuda

T+++

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.

Via de regra, sempre valide os dados.

para evitar q o usuario erre pode se usar um JFormattedTextField, e fazer com q ele so aceite numeros inteiros…

ismael.j.lima, nem sempre a entrada de dados é feita através de uma tela!

Pode, por exemplo, ser feita através de uma importação de arquivo (txt, xml, etc).

Portanto, o ViniGodoy tem razão: [quote=ViniGodoy]Via de regra, sempre valide os dados.[/quote]