猪拉丁控制台

时间:2016-01-07 00:43:08

标签: c# hadoop apache-pig

你好,我正在上课的猪拉丁语,指令是第一个辅音是从单词的前面删除,并放在单词的背面。然后是字母" ay。"例如,书变成了ookbay,而力量变得引人注目。我遇到了麻烦,因为它没有做第一个辅音。

// button, three, nix, eagle, and troubadour
Console.Write("Enter word you want in Pig Latin: ");
string word1 = Console.ReadLine(); 
string pig = ""; 
string vowels = "aeiouAEIOU"; 
string space = " ";
string extra = ""; //extra letters
int pos = 0; //position

foreach (string word in word1.Split())
{
    if (pos != 0)
    {
        pig = pig + space;
    }
    else
    {
        pos = 1;
    }

    vowels = word.Substring(0,1);
    extra = word.Substring(1, word.Length - 1);
    pig = pig + extra + vowels + "ay";
}

Console.WriteLine(pig.ToString());

例如,如果我做力量,它将作为强力而不像示例

1 个答案:

答案 0 :(得分:3)

你在那里遇到了很多问题。首先,您对问题的定义:

  

指令是第一个辅音从单词前面删除

这正是你所做的。如果您移动第一个辅音strength 成为trengths。您需要将定义更改为 所有主要辅音直到第一个元音 。另外,在eagle的情况下你做了什么?是eagleay吗?您的说明没有说明如何处理领先的元音。

这是另一个问题

vowels = word.Substring(0,1);  // This will overwrite your vowel array with the first letter

不要担心编写真正的代码,编写一些伪代码来首先计算出你的逻辑。 @Chris关于寻找第一个元音的评论很好。您的伪代码可能类似于:

Check if word begins with consonant
{
    If so, look for index of first vowel
    Take substring of word up to first vowel.
    Append it to end
}
Otherwise
{
    Deal with leading vowel
}