有没有代码来检查一个字符是元音还是辅音?像char = IsVowel这样的东西?或者需要硬编码?
case ‘a’:
case ‘e’:
case ‘i’:
case ‘o’:
case ‘u’:
case ‘A’:
case ‘E’:
case ‘I’:
case ‘O’:
case ‘U’:发布于 2013-07-21 01:25:11
你可以这样做:
char c = ...
bool isVowel = "aeiouAEIOU".IndexOf(c) >= 0;或者这样:
char c = ...
bool isVowel = "aeiou".IndexOf(c.ToString(), StringComparison.InvariantCultureIgnoreCase) >= 0;一旦你添加了对éèe̋ȅëêĕe̊æøи等的国际支持,这个字符串就会变得很长,但基本的解决方案是相同的。
发布于 2013-07-21 01:36:23
下面是一个有效的函数:
public static class CharacterExtentions
{
public static bool IsVowel(this char c)
{
long x = (long)(char.ToUpper(c)) - 64;
if (x*x*x*x*x - 51*x*x*x*x + 914*x*x*x - 6894*x*x + 20205*x - 14175 == 0) return true;
else return false;
}
}像这样使用它:
char c = 'a';
if (c.IsVowel()) { // it's a Vowel!!! }(是的,it 确实有效,但显然,这是一个笑话的答案。别贬低我。或者其他任何东西。)
发布于 2013-07-21 02:54:04
不是的。你需要首先定义你认为是元音和辅音的东西。例如,在英语中,“y”可以是辅音(如“yes”)或元音(如“by”)。像“é”和“ü”这样的字母可能在所有使用它们的语言中都是元音,但你似乎根本没有考虑到它们。首先,您应该定义为什么要将字母分类为辅音和元音。
https://stackoverflow.com/questions/17764680
复制相似问题