当前位置: 首页 > 知识库问答 >
问题:

在 Java 中检查字符是否为元音的最佳方法是什么?

霍弘厚
2023-03-14

我试图检查某个char是否为元音。做这件事最好的方法是什么?

共有3个答案

澹台景山
2023-03-14

创建switch语句。例如:

switch (Character.toLowerCase(foo)) {
  case 'a':
  case 'e':
  case 'i':
  case 'o':
  case 'u':
  case 'y': return true;
  default: return false;
}

对于Unicode,如何检测Java字符串中的Unicode字符?请按照此处给出的答案,然后使用i提供的开关语句。

晁国发
2023-03-14

一种方法是使用if-else或switch case,如@TylerWeaver的答案。如果你想在一行中完成,就使用正则表达式

像这样:

对于元音:

aStr.matches("[aeiou]")

对于辅音:

aStr.matches("[^aeiou]")

正则表达式使生活变得非常简单,也相当容易学习。看看这个备忘单。

在这种情况下,您只是创建了一个< code>[aeiou]范围,这意味着您的字符必须与< code>a或< code>e或< code>i或< code>o或< code>u匹配。[^aeiou]是范围中提到的人物之外的所有人物。

冯庆
2023-03-14

这是我已经使用了一段时间的解决方案,它还没有让我失望:

private static String VOWELS = "AÀÁÂÃÄÅĀĂĄǺȀȂẠẢẤẦẨẪẬẮẰẲẴẶḀÆǼEȄȆḔḖḘḚḜẸẺẼẾỀỂỄỆĒĔĖĘĚÈÉÊËIȈȊḬḮỈỊĨĪĬĮİÌÍÎÏIJOŒØǾȌȎṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢŌÒÓŎŐÔÕÖUŨŪŬŮŰŲÙÚÛÜȔȖṲṴṶṸṺỤỦỨỪỬỮỰYẙỲỴỶỸŶŸÝ";
private static boolean isVowel(char c)
{
    return VOWELS.indexOf(Character.toUpperCase(c)) >= 0;
}

对于我的应用程序来说,它相当快。

 类似资料:
  • 问题内容: 我正在尝试检查某一个是否为元音。这样做的最佳方法是什么? 问题答案: 这是我使用了一段时间的解决方案,但它并没有让我失望: 对于我的应用程序,它相当快。

  • 问题内容: 在Java / Android中检查字符串是否包含URL的最佳方法是什么?最好的方法是检查字符串是否包含| .com |。.net | .org | .info | .everythingelse |?还是有更好的方法呢? 该网址是在Android中输入到EditText中的,它可以是粘贴的网址,也可以是手动输入的网址,用户不希望输入http://…。我正在开发一个网址缩短应用程序。

  • 问题内容: 我通常使用以下惯用法来检查String是否可以转换为整数。 就是我,或者这似乎有点骇人听闻?有什么更好的方法? 问题答案: 如果你不担心潜在的溢出问题,该功能的执行速度将比使用快20-30倍。

  • 问题内容: 查看URL存在并且响应不是404的最佳方法是什么? 问题答案: 您可以使用 手册中的示例2 : 第一个数组元素将包含HTTP响应状态代码。您必须解析它。 请注意,示例中的函数将发出HTTP HEAD请求,这意味着它将不会获取URL的正文。这比使用GET请求(也将返回正文)更有效。 还要注意,通过设置 默认 上下文,任何使用http流上下文的后续调用现在都将发出HEAD请求。因此,确保完

  • 问题内容: 这段Java代码给我带来了麻烦: 我想检查单词的第三个字母是否是非元音,如果是,我希望它返回非元音和它前面的任何字符。如果是元音,则检查字符串中的下一个字母;如果它也是元音,则检查下一个字母,直到找到非元音为止。 例: 单词= Jaemeas,然后wordT必须= Jaem 范例2: word = Jaeoimus,然后wordT必须= Jaeoim 问题在于我的陈述,我想不出如何检查

  • 问题内容: 我需要检查单词中是否存在元音。如果是这样,应对“说”一词进行操作。我想避免for循环,因为我想到了这一点: 请推荐一种执行时间成本较低的方法。另外,也请帮助我纠正上述方法。 问题答案: vowels = {“a”, “e”, “i”, “o”, “u”, “A”, “E”, “I”, “O”, “U”} if any(char in vowels for char in word):