Conta caracteres diferentes

Boas, pesquisei e encontrei o seguinte codigo, mas nao tou a percebe lo bem, sera que alguem me poderia ajudar ou mostrar me outra maneira pf?

int charPos=0;
int charCount = 0;
char ch;
while(charPos != -1)
{
int charPos = (indexOf(ch, charPos) + 1);
if(charPos != -1)
{charCount++;)
}

Acho que esse código nem sequer compila. A variável ch não foi inicializada.
Dá uma lida aqui: http://www.guj.com.br/posts/list/32457.java#592987

Olha cara como disse o ViniGodoy, acho que esse codigo nem compila
eu tentaria algo assim:


public int contaChar(String s){
int count = 0; 
for(int i = 0; i < s.length(); i++) // poderia verificar se os digitos são espaços, ou então, números ou letras e retornar o número de caracteres
count++;

return count;
}

vlw obrigado! :smiley: eu queria comparar 2 palavras, ver o comprimento de ambas e ver quantos caracteres iguais (nao repetidos) tem, para depois fazer a diferença entre a palavra com maior length - numero de caracteres iguais. através dos vossos métodos pensei

public int  contaChar(String s){  
int count = 0;   
for(int i = 0; i < s.length(); i++)  
count++;  
  
return count;  
} 

public int  contaChar(String a){  
int count = 0;   
for(int i = 0; i < a.length(); i++) 
count++;  
  
return count;  
}   

conto os caracteres que cada palavra tem, faço:
   
if(s.length>a.length){
        return s;
        return a;}

agora tou na duvida de como se podem comparar 2 strings, pode ser qualquer coisa deste tipo:

String a
for(String lugar : a){
for (EL v : Z._ani.values()){
String especie = v.getEs();
if(especie.equals(lugar)){
aniD++;
}

eu nesse codigo procurei no array especies iguais, mas nao tou a conseguir adapta lo para string…

agradeço desde ja (:

tenta assim:

public char[] identificaIguais(String a, String b){

char[] aux;

 // Pode que todos as letras sejam iguais
int count = -1;

if(a.length() > b.length()){
  aux = new char[a.length()];
   for(int i = 0; i < b.length(); i++){
     for(int j = 0; j < a.length(); j++){
       if(b.charAt(i).equals(a.charAt(j)))
          aux[++count] = b.charAt(i);
       }
    }
}else{
    aux = new char[b.length()];
    for(int i = 0; i < b.length(); i++){
      for(int j = 0; j < a.length(); j++){
        if(b.charAt(i).equals(a.charAt(j)))
           aux[++count] = b.charAt(i);
      }
   }
}

return aux;

}

Bah… cara não tenho como testar agora mais acho que pode ser por esse caminho…

Boa noite Allan, obrigado pela ajuda, ja tava desesperando hehe
o codigo ta a dar um erro porque nao ta a aceitar charAt nos equals, ainda nao acabei o metodo mas vou andar a volta de esse codigo e tentar dar a volta, depois posso posta lo ca ;]

ate receber a sua resposta eu tive a pensar numa coisa do tipo:

pego na string, retiro o ultimo caracter, guardo num array (por exemplo) e comparo esse com a palavra, vejo e a guardo a diferença.
dessa maneira guardava todos os caracteres de cada palavra num array e depois comparava e contada, mas ainda nao cheguei a ideia de como ia guardar
num array. Em ultimo caso tava a pensar fazer if’s para cada letra do alfabeto e comparar, mas esse iria ser demasiado trabalhoso.
vou tentar outra maneira e se conseguir respondo neste topico caso esteja interessado.

estimei a ajuda! :smiley: bom fim de semana

O cara tenta assim:

	private boolean procuraIgual(String a, char el){
		for(int i = 0; i < a.length(); i++){
			if(a.charAt(i) == el)
				return true;
		}
		return false;
	}
	public String identificaIguais(String a, String b){
		
		String aux = "";
		if(a.length() > b.length()){
			for(int i = 0; i < b.length(); i++){
				for(int k = 0; k < a.length(); k++){
					if(a.charAt(k) == b.charAt(i)){
						if(this.procuraIgual(aux, a.charAt(k)) == false){
							aux += b.charAt(i);
						}
					}
				}
			}
		}
		else{
			for(int i = 0; i < a.length(); i++){
				for(int k = 0; k < b.length(); k++){
					if(a.charAt(i) == b.charAt(k)){
						if(this.procuraIgual(aux, b.charAt(k)) == false){
							aux += b.charAt(k);
						}
					}
				}
			}
			
		}
		return aux;
		  
		} 

Acho que esse funciona…