Прошлой ночью я возился с Пиглатином с использованием массивов и выяснил, что я не мог изменить процесс. Как бы я сдвинул фразу и вытащил символы «a» и «y» Char в конце слова и вернул исходное слово во фразе.Piglatin с использованием массивов
Например, если я вошел в «piggy», это получилось бы как «iggypay», переместившее слово piggy, так что «p» находится в конце слова, и «ay» добавляется.
Вот пример кода, чтобы вы могли попробовать его.
public string ay;
public string PigLatin(string phrase)
{
string[] pLatin;
ArrayList pLatinPhrase = new ArrayList();
int wordLength;
pLatin = phrase.Split();
foreach (string pl in pLatin)
{
wordLength = pl.Length;
pLatinPhrase.Add(pl.Substring(1, wordLength - 1) + pl.Substring(0, 1) + "ay");
}
foreach (string p in pLatinPhrase)
{
ay += p;
}
return ay;
}
Вы заметите, что пример не запрограммировано, чтобы найти гласные и добавить их в конец вместе с «ау». Просто простой способ сделать это.
Если вам где интересно, как реверс выше попробовать этот пример uPiglatinify
public string way;
public string uPigLatinify(string word)
{
string[] latin;
int wordLength;
// Using arrraylist to store split words.
ArrayList Phrase = new ArrayList();
// Split string phrase into words.
latin = word.Split(' ');
foreach (string i in latin)
{
wordLength = i.Length;
if (wordLength > 0)
{
// Grab 3rd letter from the end of word and append to front
// of word chopping off "ay" as it was not included in the indexing.
Phrase.Add(i.Substring(wordLength - 3, 1) + i.Substring(0, wordLength - 3) + " ");
}
}
foreach (string _word in Phrase)
{
// Add words to string and return.
way += _word;
}
return way;
}
① Вы понимаете, что ваш алгоритм, когда он стоит неправильно, переводит «яблоко» на «ppleaay» и «большой палец» на «humbtay»? ② Вы понимаете, что эта функция работает правильно только один раз? Вызов 'PigLatin (« ring »)', за которым следует 'PigLatin '(« мышь »)' выводит '' ingray '' для первого (это правильно), но затем '' ingrayousemay'' для второго. – Timwi
Нет, это правильный выход. "ring mouse cow pig donkey" все перевести на "ingray ousemay owcay igpay onkeyday". Вы просто пропустите детали. Если это неправильно, это потому, что вы неправильно его переписали. Кажется, что человеческая ошибка лучшая ваша черта. – Nightforce2
@Ardman, строка ввода «Фраза» хранится в строке [] latin. Что вы получаете в? – Nightforce2