pig拉丁控制台

bybem2ql  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(339)

嗨,我在为班上的Pig做拉丁语,说明先把辅音从单词的前面去掉,再放在单词的后面。接着是字母“ay”。例如,书变成了ookbay,力量变成了EngthTravel。我有困难,因为它不做第一个辅音。

// 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());

举例来说,如果我做的力量,它会出现作为加强赛,而不是像这样的例子

s71maibg

s71maibg1#

你有很多问题。首先,你对问题的定义是:
说明第一个辅音是从单词前面去掉的
这正是你所做的。 strength 会变成 trengths 如果你移动第一个辅音。你需要把你的定义改为第一个元音之前的所有辅音。另外,如果是这样的话,你会怎么做 eagle ? 它变成了什么 eagleay ? 你的指令没有说明如何处理前导元音。
这是另一个问题

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

现在不要担心编写真正的代码,先编写一些伪代码来解决逻辑问题@克里斯关于寻找第一个元音的评论很好。伪代码可能类似于:

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
}

相关问题