Очевидно, что я новичок в этом, следовательно, содержание этого проекта. Я написал код, который переведет английский на Pig Latin. Достаточно легко. Проблема в том, что я хочу найти способ перевести Pig Latin на английский язык с помощью логического блока. Строка клона просто выглядит как дешевый способ сделать это. Какие-либо предложения? Вот мой код:C# переводчик с 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());
}
}
}
}
Проблема в том, что нет реального правила, которое бы сработало. Например: если 3-я буква из последней была «w», вы можете сказать, что это слово гласного, но согласное слово, начинающееся с «w», также может соответствовать этому правилу. Если первая буква снова была гласной, вы можете сказать, что это слово гласного, но согласное слово также может соответствовать этому правилу, поскольку первая буква перемещается на спину (pat = atpay). Единственный способ, по-моему, в том, что это возможно, - это иметь оператор if, который проверяет, находится ли w в третьей позиции, и слово начинается с гласного, который будет вызывать для оператора & & и Visual Studio кричит на вас, если вы используете его со строками.
именно то, что думает я. так что в этом конкретном случае я действительно ничего не теряю. Я попал в невозможность? –
Да, я думаю, что у вас есть уникальный перевод (в большинстве случаев) невозможно. Но, возможно, вы могли бы дать разные переводы в случае нескольких возможностей ... – digEmAll
ничего себе, что предпринять, что потребует много мозгового штурма, чтобы найти все несколько случаев ... или я мог бы создать функцию, которая будет обрабатывать это для меня. ОК. Думаю, я сейчас на правильном пути. Спасибо digEmAll и всем остальным, которые помогли мне! –