字符检查

Sum*_*hra 5 java

if(c =='a'|| c =='e'|| c =='i'|| c =='o'|| c =='u'){count ++;

当我给出上面的陈述时,只有当给定的单词是小写时(即:输入:朋友输出2个元音),它才返回单词中元音的数量.我想知道即使我给大写或混合它应该返回元音的数量.怎么做?

Gro*_*uez 9

一个简单,简单的方法来做到这一点,而不进行10次比较:

if ("aeiouAEIOU".indexOf(c) != -1) { count++; }
Run Code Online (Sandbox Code Playgroud)


Dro*_*ror 6

这里有一个完整的例子 - 注意他们在检查元音之前将字符串转换为小写字母.

您还可以尝试使用不区分大小写的正则表达式,例如http://www.shiffman.net/teaching/a2z/regex/:

String regex = "[aeiou]";               
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);   
int vowelcount = 0;
Matcher m = p.matcher(content);         // Create Matcher
while (m.find()) {
  //System.out.print(m.group());
  vowelcount++;
}
Run Code Online (Sandbox Code Playgroud)


小智 1

您可以使用如下测试:

Character.toLowerCase(c) == 'a'
Run Code Online (Sandbox Code Playgroud)

反而。

  • @Sumithra:请注意,这在土耳其语言环境中会失败,因为它在大写和小写中都有点和无点 i,因此 Character.toLowerCase('I') == 'ı' 和 Character.toUpperCase('i') == '我' http://en.wikipedia.org/wiki/Dotted_and_dotless_I (3认同)