明らかに私はこれが初めてなので、このプロジェクトの内容です。英語を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());
}
}
}
}
問題は、機能する実際のルールがないことです。例: 最後から 3 番目の文字が "w" の場合、これは母音の単語であると言いたいかもしれませんが、"w" で始まる子音の単語もこのルールに適合します。最初の文字が再び母音だった場合、これは母音の単語であると言いたいかもしれませんが、最初の文字が後ろに移動されるため、子音の単語もこのルールに適合します (pat = atpay)。これが可能であると私が考える唯一の方法は、w が 3 番目の位置にあるかどうかをチェックする if ステートメントを使用することであり、単語が && 演算子を呼び出す母音で始まり、文字列で使用すると Visual Studio が怒鳴ります。