Converter de int para string

8 respostas
T
int numero= 1234;
String temp = " " + numero;
Integer.parseInt(temp.charAt[2]+"");

Alguém pode me explicar pra que serve as aspas duplas na hora de colocar o inteiro na string:

String temp = " " + numero;

E na hora de passar um posicao da string para inteiro novamente aparecem as aspas:

Integer.parseInt(temp.charAt[2]+"");

O código completo serve para quebrar o numero e soma-los
Ex: 1234 -> 1+2+3+4 == 10;

Grato

Theze

8 Respostas

F

Cara, vc já viu isso aqui?

T

Nossa Senhora, que coisa mais esquisita
(é que estou mais acostumado a fazer contas, em vez de ficar somando dígitos dessa maneira.)

Normalmente eu somaria os dígitos de um número assim:

/** Atenção , o número deve ser positivo */
public static int soma (int numero) {
    int div;
    int resto;
    int resultado = 0;
    div = numero;
    while (div > 0) {
        resto = div % 10;
        div = div / 10;
        resultado = resultado + resto;
    }
    return resultado;
}
R

Serve para mostrar que a pessoa que vez o codigo nao sabia mto o que estava fazendo ;). O correto seria

String tempo = Integer.toString(numero);

De qualquer forma, o “” no teu exemplo eh necessario pq nao eh possivel atribuir um int a um String. Portando, o “” + numero faz o trabalho “sujo”, ja que vc some concatenar um numero a uma string.

Rafael

T

Valeu galera…
funcionou perfeitamente thingol, obrigado…

Theze

P
como estou sem sono resolvi brincar um pouco...
/*
 * Created on 16/02/2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Teste
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Conversaointeiroparastring {

	public static void main(String[] args) {
		
		long horaInicial = 0,
		     horaFinal = 0;
		
		String numeroConvertido = new String(); 
		
		int contadorDeIteracoes = 0; 
		int maximoDeIteracoes = 123000;
		
		horaInicial = System.currentTimeMillis();
		while( contadorDeIteracoes < maximoDeIteracoes) {
			numeroConvertido = Integer.toString(contadorDeIteracoes);
			contadorDeIteracoes++;
		}
		horaFinal = System.currentTimeMillis();
		System.out.println("forma --> numeroConvertido = Integer.toString(contadorDeIteracoes) - tempo " + (horaFinal-horaInicial));
		
		contadorDeIteracoes = 0;
		
		horaInicial = System.currentTimeMillis();
		while( contadorDeIteracoes < maximoDeIteracoes) {
			numeroConvertido = "" + contadorDeIteracoes;
			contadorDeIteracoes++;
		}
		horaFinal = System.currentTimeMillis();
		System.out.println("forma --> numeroConvertido = \"\" + contadorDeIteracoes); - tempo " + (horaFinal-horaInicial));

		contadorDeIteracoes = 0;
		
		horaInicial = System.currentTimeMillis();
		while( contadorDeIteracoes < maximoDeIteracoes) {
			numeroConvertido = contadorDeIteracoes + "";
			contadorDeIteracoes++;
		}
		horaFinal = System.currentTimeMillis();
		System.out.println("forma --> numeroConvertido = contadorDeIteracoes + \"\"; + - tempo " + (horaFinal-horaInicial));
		
		contadorDeIteracoes = 0;
		
		horaInicial = System.currentTimeMillis();
		while( contadorDeIteracoes < maximoDeIteracoes) {
			
			numeroConvertido = String.valueOf(contadorDeIteracoes);
			contadorDeIteracoes++;
		}
		horaFinal = System.currentTimeMillis();
		System.out.println("forma --> numeroConvertido = String.valueOf(contadorDeIteracoes); + - tempo " + (horaFinal-horaInicial));
	}
}
resultados em um pIII 1.1 300mb ram winxp com msn, mozilla, eclipse e prompt do msdos abertos
forma --> numeroConvertido = Integer.toString(contadorDeIteracoes) - tempo 110
forma --> numeroConvertido = "" + contadorDeIteracoes); - tempo 240
forma --> numeroConvertido = contadorDeIteracoes + ""; + - tempo 341
forma --> numeroConvertido = String.valueOf(contadorDeIteracoes); + - tempo 90
D

Cara, acho que a explicação fica mais simples assim!

Quando voce coloca aspas dupla junto a um numero inteiro siginifica
que voce esta tranformando akele int em um String, se voce nao colocar essas aspas dupla pode verificar que ira dar um erro dizendo que nao é possivel converter do tipo int para o String, então é necessário que voce faça essa pequena mudança no codigo.

int total = 0;
String converte = “”;

converte = total;(erro)
converte = “” + total ;

F

dumestico:
Cara, acho que a explicação fica mais simples assim!

Quando voce coloca aspas dupla junto a um numero inteiro siginifica
que voce esta tranformando akele int em um String, se voce nao colocar essas aspas dupla pode verificar que ira dar um erro dizendo que nao é possivel converter do tipo int para o String, então é necessário que voce faça essa pequena mudança no codigo.

int total = 0;
String converte = “”;

converte = total;(erro)
converte = “” + total ;

Aí, dumestico, essa maneira que vc passou realmente é mais fácil, mas não é a melhor.
Me ensinaram isso em outro tópico aqui: http://www.guj.com.br/posts/list/19445.java

:arrow: Eu sei que eu já postei a mesma mensagem nesse mesmo tópico. Acho que valeu a pena :wink:

T

Java não é Javascript.
Em Javascript, é perfeitamente legal converter algo para String concatenando com uma string vazia (assim como é perfeitamente legal converter algo para um valor numérico subtraindo o número 0).

var s = t + "";
var n = x - 0;

É que em Javascript normalmente tenta-se escrever o menor programa possível, para que o tamanho do download seja minimizado e você gaste um pouco menos em tarifas de conexão ("Prgrmção SMS - tntar elimnr td q for pssvel - ARGH ! ") .

Mas em Java é melhor fazer as coisas direito.

Criado 15 de fevereiro de 2005
Ultima resposta 18 de fev. de 2005
Respostas 8
Participantes 6