Preciso pegar um valor de uma variável inteira e jogar para um JtextField, mas o Java não aceita tenho que transformar de inteiro para String. Como devo fazer?
Pois só sei transformar de String para inteiro
(int numero1=Integer.parseInt(num1);), mas não sei fazer o contrario!
Parece um concurso de como converter um int em uma String.
Credo, daqui a pouco vai ter um cara que vai pôr um código como:
public class Util {
/** Converte um int para uma String, na marra */
public static String toString(int x) {
... aqui vai aquele código que pega x, divide por 10, pega o resto
.... da divisão etc.
}
}
class Test203 {
public static void main(String[] args) {
String s = 123 + ""; // 1
String t = String.valueOf(123); // 2
int x = 123;
String u = x + ""; // 3
}
}
No caso 1, o compilador é suficientemente esperto para perceber que 123 é uma constante, “” é uma constante, o resultado é do tipo String, portanto 1 equivale a String s = “123”.
No caso 2, que é o recomendado, o compilador chama apenas a rotina valueOf, que cria o mínimo possível de objetos (uma String e seu char[] associado).
No caso 3, que é o que o pessoal diz que é ineficiente, o compilador gera o código equivalente a:
StringBuffer sb = new StringBuffer();
sb.append (x); // StringBuffer.append(int) é que faz a tal conversão de inteiro para caracteres, neste caso.
sb.append ("");
String u = sb.toString();
Ou seja, uma linha no original é compilada para 4 linhas no código final, criando um objeto a mais (uma StringBuffer).
(No Java 5.0 o código é quase o mesmo, só que usa a classe StringBuilder em vez de StringBuffer.)
[quote=thingol]
class Test203 {
public static void main(String[] args) {
String s = 123 + ""; // 1
String t = String.valueOf(123); // 2
int x = 123;
String u = x + ""; // 3
}
}
No caso 1, o compilador é suficientemente esperto para perceber que 123 é uma constante, “” é uma constante, o resultado é do tipo String, portanto 1 equivale a String s = “123”.
No caso 2, que é o recomendado, o compilador chama apenas a rotina valueOf, que cria o mínimo possível de objetos (uma String e seu char[] associado).
No caso 3, que é o que o pessoal diz que é ineficiente, o compilador gera o código equivalente a:
StringBuffer sb = new StringBuffer();
sb.append (x); // StringBuffer.append(int) é que faz a tal conversão de inteiro para caracteres, neste caso.
sb.append ("");
String u = sb.toString();
Ou seja, uma linha no original é compilada para 4 linhas no código final, criando um objeto a mais (uma StringBuffer).
(No Java 5.0 o código é quase o mesmo, só que usa a classe StringBuilder em vez de StringBuffer.)