简体   繁体   English

英语到猪拉丁C#控制台应用程序

[英]English to Pig Latin C# Console Application

I'm having some trouble making an applicaton in c# converting english to pig latin. 我在将英语转换为猪拉丁语的C#应用​​程序时遇到了一些麻烦。 I have everything else down except for when it comes to making the getTranslation method for it. 除了为它制作getTranslation方法时,我还有其他一切。 For some odd reason I just can't figure it out. 由于某些奇怪的原因,我只是无法弄清楚。 IF someone could give me some ideas I would appreciate it. 如果有人可以给我一些想法,我将不胜感激。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace W15M5A2_CPigLatinApp
{
class W15M5A2_CPigLatinAppProgram
{
    static void Main(string[] args)
    {
        string inputPhrase = "";
        string[] phraseOut;

        DisplayInfo();
        inputPhrase = GetPhrase();
        while (inputPhrase != "")
        {
            Console.WriteLine(" ");
            phraseOut = GetTranslation(inputPhrase);
            DisplayResults(inputPhrase, phraseOut);
            inputPhrase = GetPhrase();
        }
        Console.ReadKey();
    }

    public static void DisplayInfo()
    {
               Console.WriteLine("********************************************************" +
            "\n***    You will be prompted to enter a string of     ***" +
            "\n***    words. The phrase will be converted into a    ***" +
            "\n***    pseudo Pig Latin with results displayed.      ***" +
            "\n\n***    Enter as many strings as you would like.      ***" +
            "\n********************************************************\n\n");
        Console.Write("\n\n\n   Press any key when you are ready to begin...");
        Console.ReadKey();
        Console.Clear();
    }

    public static string GetPhrase()
    {
        string inputPhrase;
        Console.WriteLine("Enter a phrase or group of words  " +
            "\nTo Exit, press the Enter key\n");
        inputPhrase = Console.ReadLine();
        return inputPhrase;
    }
    // GetTranslation method
    public static string[] GetTranslation(string phraseIn)
    {


    }

    public static void DisplayResults(string input, string[] output)
    {
        Console.Clear();
        Console.WriteLine("Original Phrase: " + input + "\n");
        Console.Write("\nNew Phrase: ");
        foreach (string i in output)
        {
            Console.Write(i + " ");
        }
        Console.WriteLine("\n");
    }

}

} }

public static string[] GetTranslation(string phraseIn)
        {
            string vow = "aeiouyAEIOUY";
            var splitted = phraseIn.Split(new[] {" "}, StringSplitOptions.None);
            List< string> ret = new List<string>();
            foreach (string split in splitted)
            {
                string vows = string.Empty;
                string cons = string.Empty;
                for (var i = 0; i < split.Length; i++)
                {
                    char ch = split[i];
                    if (vow.Contains(ch))
                    {
                        vows += ch;
                    }
                    else
                    {
                        cons += ch;
                    }
                }
                ret.Add(cons + vows + "ay");
            }


            return ret.ToArray();
        }

This is a (little bit hacky) solution. 这是一个(有点棘手的)解决方案。 I tested it with the examples from Wiki. 我用Wiki的示例对其进行了测试。

public static string ToPigLatin(string word)
{
    string result = string.Empty;
    string pigSuffixVowelFirst = "yay";
    string pigSuffixConstanantsFirst = "ay";

    string vowels = "aeiouAEIOU";

    if(vowels.Contains(word.First()))
    {
        result = word + pigSuffixVowelFirst;
    }
    else
    {
        int count = 0;
        string end = string.Empty;
        foreach(char c in word)
        {
            if (!vowels.Contains(c))
            {
                end += c;
                count++;
            }
            else
            {
                break;
            }
        }

        result = word.Substring(count) + end + pigSuffixConstanantsFirst;
    }
    return result;
}

Use at your own peril :) 使用后果自负:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM