[quote=CrOnNoS]Não sei de um método que faça o que você quer mas fiz aqui algo que deve te ajudar:
[code]public static void main(String[] args) {
char a = 'a';
char z = 'z';
char A = 'A';
char Z = 'Z';
char um = '1';
char nove = '9';
System.out.printf("a = %d\nz = %d\nA = %d\nZ = %d\n1 = %d\n9 = %d\n",
(int) a, (int) z, (int) A, (int) Z, (int) um, (int) nove);
} // main
[/code]
[/quote]
Beleza! Tinha feito tres métodos pra checar o tipo de caractere, agora com os métodos estáticos da Character fica muito mais simples xD
Aqui como ficou o código:
class StringInfo{
public boolean isVowel(char ch){
ch = Character.toLowerCase(ch);
if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
return true;
else
return false;
}
public static void main(String[] args){
StringInfo strInfo = new StringInfo();
String text = "To be or not to be. That is the question"
+ " Whether it's noble in the mind to suffer"
+ " slings and arrows of outrangeous fortune."
+ " or to take arms against a sea of troubles,"
+ " and by opposing end them?";
int spaces = 0,
others = 0,
vowels = 0,
letters = 0;
for(int i = 0; i < text.length(); i++){
if(strInfo.isVowel(text.charAt(i)))
vowels++;
if(Character.isLetter(text.charAt(i)))
letters++;
else if(text.charAt(i) == ' ')
spaces++;
else
others++;
}
System.out.println("Total: " + text.length() +
", Letters: " + letters +
", Consonants: " + (letters - vowels) +
", Vowels: " + vowels +
", Spaces: " + spaces +
", Others: " + others);
}
}
E funcionou beleza. Valeu mesmo galera. Tenho só mais uma última dúvida =P
Vi aí que você usou o método printf pra formatar a saída me lembrou do C e de uma coisa que não consigo fazer e que acho super chato. Como eu faço pra formatar um double? Tipo, porque sempre que saí aqui, saí em notação científica: 123123E11. Como eu faço pra mostrar um double formatado, tipo: 1.23 ?
EDIT{
Eu fiz aqui com um NumberFormat, tem como fazer de outro modo mais simples?
final int terraDiametro = 7600, solDiametro = 865000;
NumberFormat f = NumberFormat.getNumberInstance();
System.out.println("O volume da terra é: " + f.format((4 * Math.PI * Math.pow(terraDiametro / 2, 3))) + " milhas cúbicas.");
}
EDIT2{
Tentei algo como isso:
System.out.printf("O número é: %2.2f\n", 2.321);
Mas não funcionou =/
}
EDIT3{
Agora tá estranho, tentei todos os exemplos dessa página e nenhum funcionou:
http://www.java2s.com/Tutorial/Java/0120__Development/SpecifyingtheWidthandPrecision.htm
O que acontece é que quando coloco por exemplo:
System.out.printf("x = %3.2f y = %3.2g\n", x, y);
A saída é: x = y =
e só. =/
O que há de errado?
}
Obrigado pela ajuda.
Abraços.