这是我的代码,它工作得很好(我认为),但是如果我想在一个句子中输入一些其他字符,例如“.,*:;”...等,那么它们肯定会被算作辅音。
有没有办法缩短这个长度,而无需输入所有非元音的字符?
另外,我知道我可以使用“ignoreCase()”而不是键入元音的所有大写版本,但在我键入它们后意识到并且我太顽固而无法更改:D
public void compute() {
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == 'a' || str.charAt(i) == 'e' || str.charAt(i) == 'i' || str.charAt(i) == 'o' || str.charAt(i) == 'u' || str.charAt(i) == 'A'
|| str.charAt(i) == 'E' || str.charAt(i) == 'I' || str.charAt(i) == 'O' || str.charAt(i) == 'U') {
vowels++;
} else if (str.charAt(i) == ' ') {
spaces++;
} else {
cons++;
}
}
}
最佳答案
您可以使用Character.isLetter
方法来检查字符是否是有效字母或某些特殊字符。这是javadoc isLetter 方法说:
public static boolean isLetter(char ch)
Determines if the specified character is a letter. A character is considered to be a letter if its general category type, provided by Character.getType(ch), is any of the following:
- UPPERCASE_LETTER
- LOWERCASE_LETTER
- TITLECASE_LETTER
- MODIFIER_LETTER
- OTHER_LETTER
Not all letters have case. Many characters are letters but are neither uppercase nor lowercase nor titlecase.
关于java - 尝试计算元音、辅音和空格,但忽略其他字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558764/