Dúvida de Char

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á !!

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

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

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

cv,

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

Valeu

ricardolecheta, mas pq ele converte para int ??

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

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);

Outra Solução…

[code]
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();
}
}[/code]
:slight_smile:

Promoção de tipos. :wink: