C#以“ a”和“ an”开头

问题描述 投票:0回答:1

我尝试搜索此主题,但找不到任何结果。我的问题是:有什么办法可以找出单词的前缀?无论是“一个”还是“一个”。

例如:

an apple
a house
an old house
an amazon
a vampire

所以我的输入将只是单词,然后函数将返回正确的前缀。

c# string prefix
1个回答
0
投票

假设所有以元音开头的单词都以“ an”开头,而所有其他单词都以“ a”开头。

string getArticle(string forWord)
{
  var vowels = new List<char> { 'A', 'E', 'I', 'O', 'U' };

  if (vowels.Contains(char.ToUpper(forWord[0])))
    return "an";

  return "a";
}

是否可以简化和改进?当然。但是,它应该作为开始的地方。


0
投票

评论中的链接给出了最全面的答复,但是如果您只是在非常简单地理解该概念之后,将会是这样:

要获取不定冠词(前缀),请传递名词:

    public static string prefix(string noun)
    {
        List<string> vowels = new List<string>(){ "A", "E", "I", "O", "U" };
        if (string.IsNullOrWhiteSpace(noun) || noun.Length < 2) return null;
        else return vowels.Contains(noun.Substring(0, 1).ToUpper()) ? "An" : "A";
    }
© www.soinside.com 2019 - 2024. All rights reserved.