Как удалить последовательные гласные в каждом слове в любом данном предложении?
Всем Привет,
может ли кто-нибудь сказать мне лучший подход к решению этой проблемы?
Предположим, у меня есть предложение типа,
I/P: "sweet soong suung by richaard"
Мне нужно написать программу на c#, чтобы удалить последовательные гласные (a,e,i,o, u) в один соответствующий гласный в каждом слове данного предложения, чтобы вывести вывод типа
О/П : "песня света в исполнении Ричарда".
Что я уже пробовал:
class Program { static void Main(string[] args) { string inputString = Console.ReadLine(); string outputString = RemoveVowels(inputString); Console.WriteLine(outputString); Console.ReadKey(); } static string RemoveVowels(string inputString) { string tmpStr = "",retStr=""; string[] splitStr = inputString.Split(Convert.ToChar(" ")); foreach (var word in splitStr) { tmpStr = word.Replace("aa", "a").Replace("ee","e").Replace("ii","i").Replace("oo","o").Replace("uu","u"); if (retStr == "") { retStr = tmpStr; } else { retStr += " " + tmpStr; } } return retStr; } }
F-ES Sitecore
Нет необходимости разделяться на "" и делать каждое слово по очереди, просто сделайте замену на всей строке, так что "heelloo woorld" станет "hello world". Ваш текущий код, вероятно, будет иметь проблемы, когда есть три буквы, как "ААА" станет "АА". Что бы я сделал, так это искал экземпляры "АА" (используйте IndexOf), и если один из них найден, замените "АА" на "А" и продолжайте делать это до тех пор, пока ни один экземпляр "АА" не будет найден. Возможно, Вам также придется подумать о проблемах с кейсами, так что же насчет "А вы там?"
Однако я сомневаюсь, что ваш наставник хочет, чтобы вы использовали Replace, это, вероятно, предназначено как упражнение в использовании массивов, так что вы, вероятно, провалите задание в любом случае.
Vijai Anand.G
с TQ..