Problemas para comparar Chars

4 respostas
G

E ae galera, blz? :cool:

Estou com um probleminha aki.

Num exemplo do livro que estou estudando, vi q eh possível comparar objetos do tipo Character.

Agora estou desenvolvendo um programinha q lê o número de ocorrências de cada letra digitada pelo usuário num TextField.

Porém, não estou conseguindo comparar os chars.

Fica a pergunta: Character = char ?

sempre pensei q fosse, mas agora estou na dúvida, pois eh possível fazer um

Character c1 = new Character ( ‘o’ );
Character c2 = new Character ( ‘a’ );

e depois um c1.equals( c2 );

mas naum consigo fazer o mesmo com objetos do tipo char.

Segue abaixo o código do programinha ( incompleto );

public class ContadorCaracteres {
	private char[] alfabeto = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
								'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's','t',
								'u', 'v', 'x', 'y', 'z' };
	private int[] counter;		//Contará o nº de ocorrências de cada letra
	private String texto = "";
		
	public ContadorCaracteres()
	{
		
		contador ( texto );
	}
	
	public ContadorCaracteres ( String digitado )
	{
		
		contador ( digitado );
	}
	
	public void contador ( String digitado )
	{
		char[] charArray = new char[ digitado.length() - 1 ];
		
		
		for ( int letra = 0; letra < digitado.length(); letra++ ) {
			for ( int corresp = 0; corresp <= 26; corresp++ ) {

	if ( charArray [ letra ].equals ( alfabeto [ corresp ] ) ) //<- Erro
						counter [ corresp ]++;
			}
		}
	}

Alguém poderia me ajudar?

Valeu

4 Respostas

D

Não. char é o tipo primitivo que permite armazenar um unico caracter. Character é a classe equivalente ao tipo primitivo char (assim como Integer, Double etc…)

usando char vc não tem objetos e sim variaveis, provavelmente vc nao esteja conseguindo por que está comparando um objeto com uma variavel de tipo primitivo…
nesse caso tenta fazer assim (nao testei mas acho q vai dar certo…

if ( charArray [ letra ] == alfabeto [ corresp ] )
	counter [ corresp ]++;

blz?

G

AHHHHHHHHHHHHHH

entendi Diego

Mas esse seu exemplo compararia o lugar q eles ocupam na memória não seu conteúdo…

Agora a dúvida persiste, mas vou tentar e posto o resultado.

Valeu

J

“GraveDigger”:
AHHHHHHHHHHHHHH

entendi Diego

Mas esse seu exemplo compararia o lugar q eles ocupam na memória não seu conteúdo…

Agora a dúvida persiste, mas vou tentar e posto o resultado.

Valeu

vc ta falando disso?

charArray [ letra ] == alfabeto [ corresp ]

se for, ta certo sim, isso compara o conteudo, nao o endereco de memoria…char eh um tipo primitivo, o comparador == funciona bem pra eles…assim como para int, boolean etc…

flw

G

Funcionou certo aki galera, valeu

Criado 15 de junho de 2005
Ultima resposta 16 de jun. de 2005
Respostas 4
Participantes 3