[code]String a = “10”;
String.valueOf(a);
int valor = a;[/code]
pq não vai?
[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:
[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
}
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.
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