Converter string em int

[code]String a = “10”;
String.valueOf(a);

	int valor = a;[/code]

pq não vai?

Cara, veja o que você está fazendo… Declara uma String e dá um valueOf nela (ou seja, não faz nada). Aí tenta colocar num inteiro uma String! Você pode tentar o seguinte:

  • Declara a String e colocar um valor nela (como a primeira linha);
  • Usar o método Integer.parseInt(string) dentro de um try catch. Se não cair no catch, é porque é inteiro. Se cair, é porque é qualquer coisa, menos um número inteiro.
1 curtida

[code]

try{
String a = “10”;
int c = 0;

}catch (q exceção?){

int i = Integer.parseInt(a);
int b = a + c; [/code]

não funciona ainda

não entendí a parte do try / catch

O mais certo seria:

String a = "10";
try{
int valor = Integer.parseInt(a);
}
catch(NumberFormatException e)
{
//Caso naum seja inteiro executa o que estiver neste bloco
}
1 curtida

É a NumberFormatException.

andredecotia,
Leia com atenção ao que eu escrevi:

try {
Integer.parseInt(a);
System.out.println(“Se não cair no catch, é porque é inteiro.”);
} catch(NumberFormatException nfe) {
System.out.println(“Se cair, é porque é qualquer coisa, menos um número inteiro.”);
}[/code]
Melhor que isso, só 2 disso.

1 curtida

Sim!! esta mesma.
Valeu

Agora ficou mais explicado

mas eu consigo sobre tipo a + b? ex: resultado 10… ??? é possível eu fazer uma operação matemática com essa string convertida pra int?

Sim
Voce pode fazer assim

a = "5";
b = "10";

int a2 = Integer.parseInt(a);  
int b2 = Integer.parseInt(b);  

System.out.println("resulta a2 + b2 :"a2+b2);    

estava aqui pensando, achei que antes do string.valueof era só atribuir uma variavel a isto… mas nao foi tão facil. montei um código.
mas surge esta questão de contexto estatico, por incrivel ainda tenho dúvidas nisto, então segue o código, que está errado, mas o que surge disto.

[code]
*

  • @author raghyjose
    */
    public class Converte {

    String a = “10”;
    int b = 0;

    public static void converte() {
    int b3 = Integer.parseInt(a);
    System.out.println(“valor de b=” + b3);
    }
    int b2 = Integer.parseInt(a);

    public static void main(String[] args) {
    converte();

    //System.out.println(“valor de b=”+b3);
    }
    }[/code]

agora deu, mas nao com o valueOF, tambem nao sei o porque.

public class Converte {

 public static void converte() {
 String a = "10";
 int b = Integer.parseInt(a);  
 // int b = String.valueOf(a);  
 System.out.println("valor de b=" + b);
 }
 public static void main(String[] args) {
 String a = "10";
 int b = Integer.parseInt(a);  
 //  int b = String.valueOf(a);  
 System.out.println("valor de b=" + b);    
 converte();
 }
}

Se voce quiser cria metodos para retornar a conversao da certo assim:

public class converter{

//retorna int
public static int getConversao(String a){
int b = Integer.parseInt(a);
return b;
}

public static void main(String []args){

String a = "10";

System.out.println("valor convertido: "getConversao(a));//
}
}

[quote=raghy]agora deu, mas nao com o valueOF, tambem nao sei o porque.

[code]
public class Converte {

public static void converte() {
String a = “10”;
int b = Integer.parseInt(a);
// int b = String.valueOf(a);
System.out.println(“valor de b=” + b);
}
public static void main(String[] args) {
String a = “10”;
int b = Integer.parseInt(a);
// int b = String.valueOf(a);
System.out.println(“valor de b=” + b);
converte();
}
}
[/code][/quote]
Cara não funciona pq o b que vc declarou é um int.

Olha oq a API do String fala sobre o método que vc chamou:

[quote]valueOf

public static String valueOf(int i)

[i][b]Returns the string representation of the int argument[/b][/i]. [/quote]

Vc simplesmente estava tentando jogar uma String dentro de um int.

Uma vez que vc converteu String para int, ele é int.

Uma coisa que vc não vai conseguir fazer é somar duas Strings:

String x = "ab"; String y = "cd"; System.out.println(x+y);Resultado: abcd

Já quando vc faz: o Integer.valueOf() vc está convertendo o objeto String para Inteiro. Funciona qualquer tipo de função aritimética.
String.valueOf() retorna uma string representando o valor que vc passou.
E se quizer jogar de Integer para String basta fazer um Integer.toString();

engraçado que o Integer.parseInt, tambem nao converte, pois a operação nao funciona.

 public static void converte() {
 String a = "10";
 int b = Integer.parseInt(a);  
 // int b = String.valueOf(a);  
 System.out.println("valor de b=" + b);
 }
 public static void main(String[] args) {
 String a = "10";
 int b = Integer.parseInt(a);  
 //int b4 = String.valueOf(a);  
 System.out.println("valor de b=" + b); 
 converte(); 
 
 
 //mais testes
 String x=String.valueOf(a);
 System.out.println("valor de x=" + x);  
 System.out.println("soma=" + x+12); 
 
 System.out.println("soma=" + b+12); 
 }
}

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\raghyjose\TesteThreadETc\build\classes
compile-single:
run-single:
valor de b=10
valor de b=10
valor de x=10
soma=1012
soma=1012
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Em qual parte não funciona?

Tem tanto código perdido ae q ta difícil até de olhar! :shock:

tenta criar uma variavel int para armazenar as somas

era só conseguir converter e somar. mas nao deu. nao é muito importante, mas vou ver o que faço.

é assim deu…


 
 System.out.println("soma=" + b+12); 
  int soma2=b+12;
  
  System.out.println("soma=" + soma2); 
 }
}

mas interessante porque nao soma diretamente o b+12, se colocassemos 5+12 somaria…
na verdade também nao deu… deu 512… estranho não?

  System.out.println("soma=" + 5+12); 

igual a 512

???

System.out.println(“soma=” + (5+12));

assim deu 17