显然我是新手,因此是这个项目的内容。我已经编写了一些代码,可以将英语翻译成Pig Latin。很容易。问题是我想找到一种使用逻辑块将 Pig Latin 翻译回英语的方法。克隆字符串似乎是一种廉价的方法。有什么建议么?这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FunctionTest
{
public class PigLatinClass
{
public static void pigTalk(string sentence)
{
try
{
while (sentence != "exit")
{
string firstLetter;
string afterFirst;
string pigLatinOut = "";
int x;
string vowel = "AEIOUaeiou";
Console.WriteLine("Enter a sentence to convert into PigLatin");
sentence = Console.ReadLine();
string[] pieces = sentence.Split();
foreach (string piece in pieces)
{
afterFirst = piece.Substring(1);
firstLetter = piece.Substring(0, 1);
x = vowel.IndexOf(firstLetter);
if (x == -1)
{
pigLatinOut = (afterFirst + firstLetter + "ay ");
}
else
{
pigLatinOut = (firstLetter + afterFirst + "way ");
}
Console.Write(pigLatinOut);
}
Console.WriteLine("Press Enter to flip the sentence back.");
Console.ReadKey(true);
string clonedString = null;
clonedString = (String)sentence.Clone();
Console.WriteLine(clonedString);
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
问题是没有真正可行的规则。例如:如果倒数第三个字母是“w”,您可能想说这是一个元音词,但以“w”开头的辅音词也符合此规则。如果第一个字母又是一个元音,你可能想说这是一个元音词,但是辅音词也可以符合这个规则,因为第一个字母被移到后面(pat = atpay)。我认为这是可能的唯一方法是有一个 if 语句来检查 w 是否在第三个位置,并且单词以元音开头,这将调用 && 运算符,如果你将它与字符串一起使用,Visual Studio 会对你大喊大叫。