Dúvida de Char

8 respostas
L

public class Teste {

public static void main(String[] args) {
	char a = 'a'; 
	char b = 'b'; 
	System.out.print(a + b);
	
}

}

Por que a impressão é 195 ??. E se eu quisezesse realmente concatenar a + b, como seria ??

Agradeço desde já !!

8 Respostas

cv1

new StringBuffer().append(a).append(b) :wink:

ricardolecheta

pq converteu para int, e o código ascii do ‘a’ é 97 e do ‘b’ é 98.

System.out.println("" + 'a' + 'b');
L

cv,

Poderia por favor ser um pouco mais claro ?? tipo explicar pq imprimi 195 e como seria para ocorrer realmente a concatenação ??

Valeu

L

ricardolecheta, mas pq ele converte para int ??

Rafael_Steil

Se vc quiser concatenar, pode fazer algo bizarro como

System.out.print(""+ a + b);

Desconsiderando se eh a melhor solucao ou nao. Apenas para mostrar que eh possivel.

Rafael

ricardolecheta

eu já me esqueci como se chama isso :wink:
mas é pq char, short, sempre sao convertidos para int…
tem algo a ver tb com char ser um int só que de 16 bits, sem sinal…
nao lembro direito,
se eu achar a fonte te digo depois…

sobre a concatenação, sempre que colocar uma string na frente o restante passa a ser uma string também.

tipo, estes dois vão dar resultados diferentes, o java concatena a partir de quando encontra uma string:

System.out.println(3 + 4 + " " +7 + 5);
System.out.println(" " + 3 + 4 + "7" + 5);
mbjunior

Outra Solução...

public class GujApp {

/**
 * 
 */
  char a;
  char b;
  public GujApp() {
	this.a = 'a';
	this.b = 'b';
	System.out.println(new Character(this.a).toString()+ 
                        new Character(this.b).toString());		
		
  }

  public static void main(String[] args) {
	new GujApp();
  }
}
:)
cv1

Promoção de tipos. :wink:

Criado 8 de janeiro de 2004
Ultima resposta 8 de jan. de 2004
Respostas 8
Participantes 5