Oi, Nao consigo resolver este problema basico!
Quero contar o numero de caracteres minusculos que aparecem numa String introduzida pelo utilizador, mas que so aparecem 1 vez.
O que o meu codigo(em baixo) faz, e contar todas as minusculas que aparecem.
Gostaria de resolver este problema!
Obrigado.
Exemplo:
Se o utilizador digitar aaadjh.
O Output devia ser 3, porque o ‘a’ aparece mais do que 1 vez.
O meu codigo ta a contar sempre. No caso anterior tinha contado 6, e eu nao quero isso.
CODIGO:
char input[50];
char minus[] = “abcdefghijklmnopqrstuvwxyz”;
int contador = 0;
vc tem q registrar os caracteres q jah foram contados… vc pode fazer isso usando um ArrayList e a classe Character pra poder gravar (jah q a classe ArrayList soh aceita objetos)…
e vc pode verificar se eh minusculo usando o metodo isLowerCase() da classe Character…
public int contaChar(String str){
char array[] = new char[str.length()];
ArrayList lista = new ArrayList();
int num = 0;
str.getChars(0, str.length(), array, 0);
for (int i = 0; i < array.length; i++){
if (Character.isLowerCase(array[i])){
if (!jahTem(lista, array[i])){
lista.add(new Character(array[i]));
num++;
}
}
}
return num;
}
public boolean jahTem(ArrayList lista, Char c){
int s = lista.size();
for (int i = 0; i < s; i++){
if (((Character)(lista.get(i))).charValue() == c) return true;
}
return false;
}
[quote=“Calavera”]Oi, Nao consigo resolver este problema basico!
Quero contar o numero de caracteres minusculos que aparecem numa String introduzida pelo utilizador, mas que so aparecem 1 vez.
O que o meu codigo(em baixo) faz, e contar todas as minusculas que aparecem.
Gostaria de resolver este problema!
Obrigado.
Exemplo:
Se o utilizador digitar aaadjh.
O Output devia ser 3, porque o ‘a’ aparece mais do que 1 vez.
O meu codigo ta a contar sempre. No caso anterior tinha contado 6, e eu nao quero isso.
CODIGO:
char input[50];
char minus[] = “abcdefghijklmnopqrstuvwxyz”;
int contador = 0;
for(int i = 0;i < input.length();i++) {
for(int j = 0;j < input.length();j++) {
if(input[i] != minus[j]) {}
else
contador++;
[/code][/quote]
Faz uma String pra contar os caracteres.
Sempre que voce encontrar um caractere, voce adiciona ele na String…logo String.indexOf(letra) > 0 é por que já foi contado o caractere.
[quote=“Felipe”]vc tem q registrar os caracteres q jah foram contados… vc pode fazer isso usando um ArrayList e a classe Character pra poder gravar (jah q a classe ArrayList soh aceita objetos)…
[/quote]
Usando generics no tiger isso ja nao acontece mais. agora a gente pode dizer às collections que tipo de dados elas podem aceitar …
Utilize um java.util.Set para armazenar os char convertidos para String. O Set não duplica elementos. Diferente de java.util.List que permite elementos duplicados